/*
LUFA Library
- Copyright (C) Dean Camera, 2010.
+ Copyright (C) Dean Camera, 2011.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
*/
/** \file
- * \brief Master include file for the board digital button driver.
+ * \brief Digital button board hardware driver.
*
* This file is the master dispatch header file for the board-specific Buttons driver, for boards containing
- * physical pushbuttons connected to the AVR's GPIO pins.
+ * physical pushbuttons connected to the microcontroller's GPIO pins.
*
* User code should include this file, which will in turn include the correct Button driver header file for the
* currently selected board.
*
- * If the BOARD value is set to BOARD_USER, this will include the /Board/Buttons.h file in the user project
+ * If the \c BOARD value is set to \c BOARD_USER, this will include the \c /Board/Buttons.h file in the user project
* directory.
*
- * For possible BOARD makefile values, see \ref Group_BoardTypes.
+ * For possible \c BOARD makefile values, see \ref Group_BoardTypes.
*/
/** \ingroup Group_BoardDrivers
- * @defgroup Group_Buttons Buttons Driver - LUFA/Drivers/Board/Buttons.h
+ * \defgroup Group_Buttons Buttons Driver - LUFA/Drivers/Board/Buttons.h
+ * \brief Digital button board hardware driver.
*
* \section Sec_Dependencies Module Source Dependencies
* The following files must be built with any user project that uses this module:
* It provides a way to easily configure and check the status of all the buttons on the board so that appropriate
* actions can be taken.
*
- * If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
+ * If the \c BOARD value is set to \c BOARD_USER, this will include the \c /Board/Buttons.h file in the user project
* directory. Otherwise, it will include the appropriate built in board driver header file.
*
- * For possible BOARD makefile values, see \ref Group_BoardTypes.
+ * For possible \c BOARD makefile values, see \ref Group_BoardTypes.
*
* \section Sec_ExampleUsage Example Usage
* The following snippet is an example of how this module may be used within a typical
* application.
*
* \code
- * // Initialise the button driver before first use
+ * // Initialize the button driver before first use
* Buttons_Init();
*
* printf("Waiting for button press...\r\n");
#define __BUTTONS_H__
/* Macros: */
- #if !defined(__DOXYGEN__)
#define __INCLUDE_FROM_BUTTONS_H
- #define INCLUDE_FROM_BUTTONS_H
- #endif
/* Includes: */
- #include "../../Common/Common.h"
+ #include "../../Common/Common.h"
- #if (BOARD == BOARD_NONE)
- #error The Board Buttons driver cannot be used if the makefile BOARD option is not set.
- #elif (BOARD == BOARD_USBKEY)
- #include "USBKEY/Buttons.h"
- #elif (BOARD == BOARD_STK525)
- #include "STK525/Buttons.h"
- #elif (BOARD == BOARD_STK526)
- #include "STK526/Buttons.h"
- #elif (BOARD == BOARD_ATAVRUSBRF01)
- #include "ATAVRUSBRF01/Buttons.h"
- #elif (BOARD == BOARD_BUMBLEB)
- #include "BUMBLEB/Buttons.h"
- #elif (BOARD == BOARD_EVK527)
- #include "EVK527/Buttons.h"
- #elif (BOARD == BOARD_USBTINYMKII)
- #include "USBTINYMKII/Buttons.h"
- #elif (BOARD == BOARD_BENITO)
- #include "BENITO/Buttons.h"
- #elif (BOARD == BOARD_JMDBU2)
- #include "JMDBU2/Buttons.h"
- #elif (BOARD == BOARD_OLIMEX162)
- #include "OLIMEX162/Buttons.h"
- #elif (BOARD == BOARD_USBFOO)
- #include "USBFOO/Buttons.h"
- #elif (BOARD == BOARD_UDIP)
- #include "UDIP/Buttons.h"
- #elif (BOARD == BOARD_CULV3)
- #include "CULV3/Buttons.h"
- #elif (BOARD == BOARD_MINIMUS)
- #include "MINIMUS/Buttons.h"
- #elif (BOARD == BOARD_MICROSIN162)
- #include "MICROSIN162/Buttons.h"
- #elif (BOARD == BOARD_USER)
- #include "Board/Buttons.h"
- #else
- #error The selected board does not contain any GPIO buttons.
- #endif
+ #if (BOARD == BOARD_NONE)
+ #error The Board Buttons driver cannot be used if the makefile BOARD option is not set.
+ #elif (BOARD == BOARD_USBKEY)
+ #include "AVR8/USBKEY/Buttons.h"
+ #elif (BOARD == BOARD_STK525)
+ #include "AVR8/STK525/Buttons.h"
+ #elif (BOARD == BOARD_STK526)
+ #include "AVR8/STK526/Buttons.h"
+ #elif (BOARD == BOARD_ATAVRUSBRF01)
+ #include "AVR8/ATAVRUSBRF01/Buttons.h"
+ #elif (BOARD == BOARD_BUMBLEB)
+ #include "AVR8/BUMBLEB/Buttons.h"
+ #elif (BOARD == BOARD_EVK527)
+ #include "AVR8/EVK527/Buttons.h"
+ #elif (BOARD == BOARD_USBTINYMKII)
+ #include "AVR8/USBTINYMKII/Buttons.h"
+ #elif (BOARD == BOARD_BENITO)
+ #include "AVR8/BENITO/Buttons.h"
+ #elif (BOARD == BOARD_JMDBU2)
+ #include "AVR8/JMDBU2/Buttons.h"
+ #elif (BOARD == BOARD_OLIMEX162)
+ #include "AVR8/OLIMEX162/Buttons.h"
+ #elif (BOARD == BOARD_USBFOO)
+ #include "AVR8/USBFOO/Buttons.h"
+ #elif (BOARD == BOARD_UDIP)
+ #include "AVR8/UDIP/Buttons.h"
+ #elif (BOARD == BOARD_CULV3)
+ #include "AVR8/CULV3/Buttons.h"
+ #elif (BOARD == BOARD_MINIMUS)
+ #include "AVR8/MINIMUS/Buttons.h"
+ #elif (BOARD == BOARD_MICROSIN162)
+ #include "AVR8/MICROSIN162/Buttons.h"
+ #elif (BOARD == BOARD_EVK1101)
+ #include "UC3/EVK1101/Buttons.h"
+ #elif (BOARD == BOARD_TUL)
+ #include "AVR8/TUL/Buttons.h"
+ #else
+ #include "Board/Buttons.h"
+ #endif
- /* Pseudo-Functions for Doxygen: */
- #if defined(__DOXYGEN__)
- /** Initialises the BUTTONS driver, so that the current button position can be read. This sets the appropriate
- * I/O pins to an inputs with pull-ups enabled.
- *
- * This must be called before any Button driver functions are used.
- */
- static inline void Buttons_Init(void);
+ /* Pseudo-Functions for Doxygen: */
+ #if defined(__DOXYGEN__)
+ /** Initializes the BUTTONS driver, so that the current button position can be read. This sets the appropriate
+ * I/O pins to an inputs with pull-ups enabled.
+ *
+ * This must be called before any Button driver functions are used.
+ */
+ static inline void Buttons_Init(void);
- /** Returns a mask indicating which board buttons are currently pressed.
- *
- * \return Mask indicating which board buttons are currently pressed.
- */
- static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
- #endif
+ /** Returns a mask indicating which board buttons are currently pressed.
+ *
+ * \return Mask indicating which board buttons are currently pressed.
+ */
+ static inline uint_reg_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ #endif
#endif