aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/Board
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA/Drivers/Board')
-rw-r--r--LUFA/Drivers/Board/Buttons.h15
-rw-r--r--LUFA/Drivers/Board/Dataflash.h51
-rw-r--r--LUFA/Drivers/Board/Joystick.h24
-rw-r--r--LUFA/Drivers/Board/LEDs.h23
-rw-r--r--LUFA/Drivers/Board/Temperature.c4
-rw-r--r--LUFA/Drivers/Board/Temperature.h13
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: */