Use the PDI REPEAT instruction in the PDI programmer code to reduce protocol overhead...
[pub/USBasp.git] / LUFA / Drivers / Board / Temperature.h
index c205093..01727ca 100644 (file)
  *  Temperature sensor board driver for the USB boards which contain a temperature sensor.\r
  */\r
 \r
+/** \ingroup Group_BoardDrivers\r
+ *  @defgroup Group_Temperature Temperature Sensor Driver - LUFA/Drivers/Board/Temperature.h\r
+ *\r
+ *  \section Sec_Dependencies Module Source Dependencies\r
+ *  The following files must be built with any user project that uses this module:\r
+ *    - LUFA/Drivers/Board/Temperature.c\r
+ *\r
+ *  \section Module Description\r
+ *  Temperature sensor driver. This provides an easy to use interface for the hardware temperature sensor located\r
+ *  on many boards. It provides an interface to configure the sensor and appropriate ADC channel, plus read out the\r
+ *  current temperature in degrees C. It is designed for and will only work with the temperature sensor located on the\r
+ *  official Atmel USB AVR boards, as each sensor has different characteristics.\r
+ *\r
+ *  @{\r
+ */\r
+\r
 #ifndef __TEMPERATURE_H__\r
 #define __TEMPERATURE_H__\r
 \r
        /* Includes: */\r
                #include <avr/pgmspace.h>\r
 \r
-               #include "../AT90USBXXX/ADC.h"\r
                #include "../../Common/Common.h"\r
+               #include "../Peripheral/ADC.h"\r
        \r
                #if !defined(BOARD)\r
-                       #error #error BOARD must be set in makefile to a value specified in BoardTypes.h.       \r
-               #elif (BOARD != BOARD_USBKEY) && (BOARD != BOARD_STK525) && (BOARD != BOARD_STK526)\r
+                       #error BOARD must be set in makefile to a value specified in BoardTypes.h.      \r
+               #elif ((BOARD != BOARD_USBKEY) && (BOARD != BOARD_STK525) && \\r
+                      (BOARD != BOARD_STK526) && (BOARD != BOARD_USER) &&   \\r
+                          (BOARD != BOARD_EVK527))\r
                        #error The selected board does not contain a temperature sensor.\r
                #endif\r
 \r
                        /** ADC channel number for the temperature sensor. */\r
                        #define TEMP_ADC_CHANNEL   0\r
                        \r
-                       /** Minimum returnable temperature from the Temperature_GetTemperature() function. */\r
+                       /** Minimum returnable temperature from the \ref Temperature_GetTemperature() function. */\r
                        #define TEMP_MIN_TEMP      TEMP_TABLE_OFFSET\r
 \r
-                       /** Maximum returnable temperature from the Temperature_GetTemperature() function. */\r
+                       /** Maximum returnable temperature from the \ref Temperature_GetTemperature() function. */\r
                        #define TEMP_MAX_TEMP      ((TEMP_TABLE_SIZE - 1) + TEMP_TABLE_OFFSET)\r
-                       \r
-                       /** Initializes the temperature sensor driver, including setting up the appropriate ADC channel.\r
-                        *  This must be called before any other temperature sensor routines.\r
-                        *\r
-                        *  The ADC itself (not the ADC channel) must be configured seperately before calling the temperature\r
-                        *  sensor functions.\r
-                        */\r
-                       #define Temperature_Init() ADC_SetupChannel(TEMP_ADC_CHANNEL);\r
+               \r
+               /* Pseudo-Function Macros: */\r
+                       #if defined(__DOXYGEN__)\r
+                               /** Initializes the temperature sensor driver, including setting up the appropriate ADC channel.\r
+                                *  This must be called before any other temperature sensor routines.\r
+                                *\r
+                                *  \note The ADC itself (not the ADC channel) must be configured separately before calling the\r
+                                *        temperature sensor functions.\r
+                                */\r
+                               static inline void Temperature_Init(void);\r
+                       #else\r
+                               #define Temperature_Init() ADC_SetupChannel(TEMP_ADC_CHANNEL);\r
+                       #endif\r
 \r
                /* Function Prototypes: */\r
                        /** Performs a complete ADC on the temperature sensor channel, and converts the result into a\r
-                        *  valid temperature between TEMP_MIN_TEMP and TEMP_MAX_TEMP in degrees Celcius.\r
+                        *  valid temperature between \ref TEMP_MIN_TEMP and \ref TEMP_MAX_TEMP in degrees Celsius.\r
                         *\r
-                        *  \return Signed temperature in degrees Celcius\r
+                        *  \return Signed temperature in degrees Celsius\r
                         */\r
                        int8_t Temperature_GetTemperature(void) ATTR_WARN_UNUSED_RESULT;\r
 \r
                #endif\r
                \r
 #endif\r
+\r
+/** @} */\r