Carmel (MAXREFDES18#) Code Documentation  V01.00
High Accuracy Analog Current/Voltage Output
 All Files Functions Variables Macros Pages
utilities.h File Reference
#include "xbasic_types.h"
#include "xspi_l.h"
#include "stdio.h"
#include "xiic_l.h"
#include "xuartlite_i.h"
#include "xparameters.h"
#include "xgpio.h"
#include "xgpio_l.h"
#include "MAXREFDES18.h"

Go to the source code of this file.

Functions

int SpiRW (u32 unPeripheralAddressSPI, unsigned int unCPHA, unsigned int unCPOL, u8 *auchWriteBuf, u8 *auchReadBuf, int unNumBytes, u8 uchCsActiveHigh, u32 unSpiSS)
 Perform a SPI read or write.
 
void delay (int nStopValue)
 Loop for nStopValue iterations to provide a delay.
 
void led_knight_rider (XGpio *pLED_GPIO, int nNumberOfTimes)
 Blink a row of LEDs nNumberOfTimes times.
 
void max_configure_PMOD_port (u8 uchPmodPortA, u8 uchPmodPortB, u8 uchPmodPortC, u8 uchPmodPortD)
 Configure driving peripherals on each Pmod port.
 
int number_raised_to_power (int nBase, int nExponent)
 Raise nBase to the nExponent power (operates with integers only).
 
int receive_byte_with_timeout (u32 unUartAddress, int nTimeoutInTenthsOfSeconds, u8 *uchRxData)
 Receive a byte from the UART located at *pUartAddress.
 
int GetLine (char *sInputString, unsigned int unMaxSize)
 Retrieve a line of characters from the default Hyperterminal UART (DEFAULT_HYPERTERMINAL_UART).
 
void print_asterisks (int nQuantity)
 Print nQuantity of asterisks to the default Hyperterminal UART.
 

Detailed Description


      Project: Carmel (MAXREFDES18)
     Filename: utilities.h
  Description: This module contains the utility functions for the
               LX9 board implementation of the example program
               for the MAXREFDES18.

Revision History:
08-19-2013 Rev 01.00 MG Initial release.


This code follows the following naming conventions:


char chPmodValue
char (array) sPmodString[16]
float fPmodValue
int nPmodValue
int (array) anPmodValue[16]
u16 uPmodValue
u16 (array) auPmodValue[16]
u8 uchPmodValue
u8 (array) auchPmodBuffer[16]
unsigned int unPmodValue
int * punPmodValue


Definition in file utilities.h.

Function Documentation

void delay ( int  nStopValue)

Loop for nStopValue iterations to provide a delay.

Details
It is commonly used with the constant 'ABOUT_ONE_SECOND' defined in maximPMOD.h for setting approximate delays
Parameters
[in]nStopValue- number of iterations to loop
Return values
None

Definition at line 166 of file utilities.c.

int GetLine ( char *  sInputString,
unsigned int  unMaxSize 
)

Retrieve a line of characters from the default Hyperterminal UART (DEFAULT_HYPERTERMINAL_UART).

Details
Maximum number of characters can be specified. Function will timeout after 10 seconds.
Parameters
[in]sInputString- pointer to buffer for input string
[in]unMaxSize- maximum number of characters to input
Return values
TRUEif operation succeeded

Definition at line 347 of file utilities.c.

void led_knight_rider ( XGpio *  pLED_GPIO,
int  nNumberOfTimes 
)

Blink a row of LEDs nNumberOfTimes times.

Details
The Digilent NEXYS-3 board has 8 green LEDs located above the toggle switches. This function blinks them back/forth (a bit like the KITT car from Knight Rider)
Parameters
[in]*pLED_GPIO- address of the GPIO peripheral driving the LEDs in the memory map
Return values
None

Definition at line 187 of file utilities.c.

void max_configure_PMOD_port ( u8  uchPmodPortA,
u8  uchPmodPortB,
u8  uchPmodPortC,
u8  uchPmodPortD 
)

Configure driving peripherals on each Pmod port.

Details
The Maxim HDL hardware design for the Nexys 3 includes a multiplexer on each PMOD port to allow I2C, SPI, GPIO, and UART functionality to be selected on each port. The standard configuration is (PortA = I2C, PortB = SPI, PortC = GPIO, PortD = UART) This function is used to set the standard configuration in the main() function, as well as to optionally change the port config. The 2-bit number used to define the port configuration is encoded as follows:
00=UART, 01=SPI, 10=GPIO and 11=I2C
Parameters
[in]uchPmodPortA- 2-bit number to define configuration for Pmod port A
[in]uchPmodPortB- 2-bit number to define configuration for Pmod port B
[in]uchPmodPortC- 2-bit number to define configuration for Pmod port C
[in]uchPmodPortD- 2-bit number to define configuration for Pmod port D
Return values
TRUEif operation succeeded

Definition at line 222 of file utilities.c.

int number_raised_to_power ( int  nBase,
int  nExponent 
)

Raise nBase to the nExponent power (operates with integers only).

Details
Many Microblaze applications will not have math.h included due to limited memory space. This is a simple functions to implement (nBase ^ nExponent) Some Maxim devices (such as MAX44009) return values in mantissa + (power of 2) exponent format.
Parameters
[in]nBase- base
[in]nExponent- exponent
Return values
Base^Exponent

Definition at line 262 of file utilities.c.

void print_asterisks ( int  nQuantity)

Print nQuantity of asterisks to the default Hyperterminal UART.

Parameters
[in]nQuantity- number of asterisks to print
Return values
None

Definition at line 64 of file utilities.c.

int receive_byte_with_timeout ( u32  unUartAddress,
int  nTimeoutInTenthsOfSeconds,
u8 *  uchRxData 
)

Receive a byte from the UART located at *pUartAddress.

Parameters
[in]unUartAddress- address of the UART peripheral in the memory map
[in]nTimeoutInTenthsOfSeconds- amount of time to allow before TIMEOUT
[out]*uchRxData- received data is stored at uchRxData
Return values
TRUEif operation succeeded

Definition at line 291 of file utilities.c.

int SpiRW ( u32  unPeripheralAddressSPI,
unsigned int  unCPHA,
unsigned int  unCPOL,
u8 *  auchWriteBuf,
u8 *  auchReadBuf,
int  unNumBytes,
u8  uchCsActiveHigh,
u32  unSpiSS 
)

Perform a SPI read or write.

Details
This function provides a combination SPI Read and Write to the chosen SPI port in the design CPHA and CPOL can be set to 0 or 1 Pointers are provided to u8 buffers containing the data to be written and received Data in the auchWriteBuf will be clocked out (MSB first) onto the MOSI pin Data from the MISO pin will be placed into the auchReadBuf uchCsActiveHigh==TRUE allows SS configurations to be used uchCsActiveHigh==FALSE allows SS# configurations to be used
Parameters
[in]unPeripheralAddressSPI-
[in]unCPHA- phase of SCK (edge to trigger on). 0=Leading edge, 1=Trailing edge
[in]unCPOL- polarity of SCK. 0=Active high, 1=Active low
[in]auchWriteBuf- pointer to write data buffer
[in]auchReadBuf- pointer to read data buffer
[in]unNumBytes- number of bytes to transfer
[in]uchCsActiveHigh- polarity of slave select 0=active low, 1=active high
[in]unSpiSS- one-hot 32-bit slave select register value. 0x1 = MAX15500, 0x2= MAX5316.
Return values
Alwaysreturns 0

Definition at line 78 of file utilities.c.