diff options
Diffstat (limited to 'LUFA/Drivers/Board')
-rw-r--r-- | LUFA/Drivers/Board/Buttons.h | 15 | ||||
-rw-r--r-- | LUFA/Drivers/Board/Dataflash.h | 51 | ||||
-rw-r--r-- | LUFA/Drivers/Board/Joystick.h | 24 | ||||
-rw-r--r-- | LUFA/Drivers/Board/LEDs.h | 23 | ||||
-rw-r--r-- | LUFA/Drivers/Board/Temperature.c | 4 | ||||
-rw-r--r-- | LUFA/Drivers/Board/Temperature.h | 13 |
6 files changed, 125 insertions, 5 deletions
diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h index d06781dbb..e112683a8 100644 --- a/LUFA/Drivers/Board/Buttons.h +++ b/LUFA/Drivers/Board/Buttons.h @@ -60,6 +60,21 @@ * * For possible BOARD makefile values, see \ref Group_BoardTypes. * + * <b>Example Usage:</b> + * \code + * // Initialise the button driver before first use + * Buttons_Init(); + * + * printf("Waiting for button press...\r\n"); + * + * // Loop until a board button has been pressed + * uint8_t ButtonPress; + * while (!(ButtonPress = Buttons_GetStatus())) {}; + * + * // Display which button was pressed (assuming two board buttons) + * printf("Button pressed: %s\r\n", (ButtonPress == BUTTONS_BUTTON1) ? "Button 1" : "Button 2"); + * \endcode + * * @{ */ diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h index 31e311596..d443c8f5a 100644 --- a/LUFA/Drivers/Board/Dataflash.h +++ b/LUFA/Drivers/Board/Dataflash.h @@ -59,6 +59,54 @@ * * For possible BOARD makefile values, see \ref Group_BoardTypes. * + * <b>Example Usage:</b> + * \code + * // Initialise the SPI and board Dataflash drivers before first use + * SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | + * SPI_SAMPLE_TRAILING | SPI_MODE_MASTER); + * Dataflash_Init(); + * + * uint8_t WriteBuffer[DATAFLASH_PAGE_SIZE]; + * uint8_t ReadBuffer[DATAFLASH_PAGE_SIZE]; + * + * // Fill page write buffer with a repeating pattern + * for (uint16_t i = 0; i < DATAFLASH_PAGE_SIZE; i++) + * WriteBuffer[i] = (i & 0xFF); + * + * // Must select the chip of interest first before operating on it + * Dataflash_SelectChip(DATAFLASH_CHIP1); + * + * // Write to the Dataflash's first internal memory buffer + * printf("Writing data to first dataflash buffer:\r\n"); + * Dataflash_SendByte(DF_CMD_BUFF1WRITE); + * Dataflash_SendAddressBytes(0, 0); + * + * for (uint16_t i = 0; i < DATAFLASH_PAGE_SIZE; i++) + * Dataflash_SendByte(WriteBuffer[i]); + * + * // Commit the Dataflash's first memory buffer to the non-voltatile FLASH memory + * printf("Committing page to non-volatile memory page index 5:\r\n"); + * Dataflash_SendByte(DF_CMD_BUFF1TOMAINMEMWITHERASE); + * Dataflash_SendAddressBytes(5, 0); + * Dataflash_WaitWhileBusy(); + * + * // Read the page from non-voltatile FLASH memory into the Dataflash's second memory buffer + * printf("Reading data into second dataflash buffer:\r\n"); + * Dataflash_SendByte(DF_CMD_MAINMEMTOBUFF2); + * Dataflash_SendAddressBytes(5, 0); + * Dataflash_WaitWhileBusy(); + * + * // Read the Dataflash's second internal memory buffer + * Dataflash_SendByte(DF_CMD_BUFF2READ); + * Dataflash_SendAddressBytes(0, 0); + * + * for (uint16_t i = 0; i < DATAFLASH_PAGE_SIZE; i++) + * ReadBuffer[i] = Dataflash_ReceiveByte(); + * + * // Deselect the chip after use + * Dataflash_DeselectChip(); + * \endcode + * * @{ */ @@ -97,7 +145,8 @@ /* Inline Functions: */ /** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC. - * The AVR's SPI driver MUST be initialized before any of the dataflash commands are used. + * + * \note The AVR's SPI driver must be initialized before any of the dataflash commands are used. */ static inline void Dataflash_Init(void); diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h index 6bf786947..f3c5c9d26 100644 --- a/LUFA/Drivers/Board/Joystick.h +++ b/LUFA/Drivers/Board/Joystick.h @@ -59,6 +59,30 @@ * * For possible BOARD makefile values, see \ref Group_BoardTypes. * + * <b>Example Usage:</b> + * \code + * // Initialise the board Joystick driver before first use + * Joystick_Init(); + * + * printf("Waiting for joystick movement...\r\n"); + * + * // Loop until a the joystick has been moved + * uint8_t JoystickMovement; + * while (!(JoystickMovement = Joystick_GetStatus())) {}; + * + * // Display which direction the joystick was moved in + * printf("Joystick moved:\r\n"); + * + * if (JoystickMovement & (JOY_UP | JOY_DOWN)) + * printf("%s ", (JoystickMovement & JOY_UP) ? "Up" : "Down"); + * + * if (JoystickMovement & (JOY_LEFT | JOY_RIGHT)) + * printf("%s ", (JoystickMovement & JOY_LEFT) ? "Left" : "Right"); + * + * if (JoystickMovement & JOY_PRESSED) + * printf("Pressed"); + * \endcode + * * @{ */ diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h index a898be28b..b05d55cf8 100644 --- a/LUFA/Drivers/Board/LEDs.h +++ b/LUFA/Drivers/Board/LEDs.h @@ -68,6 +68,29 @@ * compatible code for a board with no LEDs by making a board LED driver (see \ref Page_WritingBoardDrivers) * which contains only stub functions and defines no LEDs. * + * <b>Example Usage:</b> + * \code + * // Initialise the board LED driver before first use + * LEDs_Init(); + * + * // Turn on each of the four LEDs in turn + * LEDs_SetAllLEDs(LEDS_LED1); + * _delay_ms(500); + * LEDs_SetAllLEDs(LEDS_LED1); + * _delay_ms(500); + * LEDs_SetAllLEDs(LEDS_LED1); + * _delay_ms(500); + * LEDs_SetAllLEDs(LEDS_LED1); + * _delay_ms(500); + * + * // Turn on all LEDs + * LEDs_SetAllLEDs(LEDS_ALL_LEDS); + * _delay_ms(1000); + * + * // Turn on LED 1, turn off LED 2, leaving LEDs 3 and 4 in their current state + * LEDs_ChangeLEDs((LEDS_LED1 | LEDS_LED2), LEDS_LED1); + * \endcode + * * @{ */ diff --git a/LUFA/Drivers/Board/Temperature.c b/LUFA/Drivers/Board/Temperature.c index 67d105491..3c8028143 100644 --- a/LUFA/Drivers/Board/Temperature.c +++ b/LUFA/Drivers/Board/Temperature.c @@ -50,10 +50,10 @@ int8_t Temperature_GetTemperature(void) if (Temp_ADC > pgm_read_word(&Temperature_Lookup[0])) return TEMP_MIN_TEMP; - for (uint16_t Index = 0; Index < TEMP_TABLE_SIZE; Index++) + for (uint16_t Index = 0; Index < (sizeof(Temperature_Lookup) / sizeof(Temperature_Lookup[0])); Index++) { if (Temp_ADC > pgm_read_word(&Temperature_Lookup[Index])) - return (Index + TEMP_TABLE_OFFSET); + return (Index + TEMP_TABLE_OFFSET_DEGREES); } return TEMP_MAX_TEMP; diff --git a/LUFA/Drivers/Board/Temperature.h b/LUFA/Drivers/Board/Temperature.h index 8832c0c66..c8b36f586 100644 --- a/LUFA/Drivers/Board/Temperature.h +++ b/LUFA/Drivers/Board/Temperature.h @@ -47,6 +47,16 @@ * current temperature in degrees C. It is designed for and will only work with the temperature sensor located on the * official Atmel USB AVR boards, as each sensor has different characteristics. * + * <b>Example Usage:</b> + * \code + * // Initialise the ADC and board temperature sensor drivers before first use + * ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_128); + * Temperature_Init(); + * + * // Display converted temperature in degrees Celcius + * printf("Current Temperature: %d Degrees\r\n", Temperature_GetTemperature()); + * \endcode + * * @{ */ @@ -110,8 +120,7 @@ /* Private Interface - For use in library only: */ #if !defined(__DOXYGEN__) /* Macros: */ - #define TEMP_TABLE_SIZE (sizeof(Temperature_Lookup) / sizeof(Temperature_Lookup[0])) - #define TEMP_TABLE_OFFSET -21 + #define TEMP_TABLE_OFFSET_DEGREES -21 #endif /* Disable C linkage for C++ Compilers: */ |