00001
00018 #ifndef _HALWDTCTRL_H
00019 #define _HALWDTCTRL_H
00020
00021
00022
00023
00024 #include <halWdt.h>
00025
00026
00027
00028
00029
00030
00031 #if defined(AT91SAM7X256)
00032 typedef enum
00033 {
00034 WDT_INTERVAL_4 = 0xFFE,
00035 WDT_INTERVAL_16 = 0xFFB,
00036 WDT_INTERVAL_32 = 0xFF9,
00037 WDT_INTERVAL_64 = 0xFEF,
00038 WDT_INTERVAL_125 = 0xFDF,
00039 WDT_INTERVAL_250 = 0xFBF,
00040 WDT_INTERVAL_500 = 0xF7F,
00041 WDT_INTERVAL_1000 = 0xEFF,
00042 WDT_INTERVAL_2000 = 0xDFF,
00043 WDT_INTERVAL_4000 = 0xBFF,
00044 WDT_INTERVAL_8000 = 0x7FF
00045 } HAL_WdtInterval_t;
00046 #elif defined(ATMEGA1281) || defined(ATMEGA2561) || defined(ATMEGA1284) || defined(AT90USB1287)
00047 typedef enum
00048 {
00049 WDT_INTERVAL_16 = 0x00,
00050 WDT_INTERVAL_32 = 0x01,
00051 WDT_INTERVAL_64 = 0x02,
00052 WDT_INTERVAL_125 = 0x03,
00053 WDT_INTERVAL_250 = 0x04,
00054 WDT_INTERVAL_500 = 0x05,
00055 WDT_INTERVAL_1000 = 0x06,
00056 WDT_INTERVAL_2000 = 0x07,
00057 WDT_INTERVAL_4000 = 0x20,
00058 WDT_INTERVAL_8000 = 0x21
00059 }HAL_WdtInterval_t;
00060 #endif
00061
00062
00063
00064
00065
00066
00082 void HAL_StartWdt(HAL_WdtInterval_t interval);
00083
00084
00090 void HAL_RegisterWdtCallback(void (*wdtCallback)());
00091
00092
00093
00094
00095 #if defined(AT91SAM7X256)
00096
00099 INLINE void HAL_ResetWdt(void)
00100 {
00101 halResetWdt();
00102 }
00103
00104 #elif defined(ATMEGA1281) || defined(ATMEGA2561) || defined(ATMEGA1284) || defined(AT90USB1287)
00105
00108 #define HAL_StopWdt() wdt_disable()
00109
00110
00113 #define HAL_ResetWdt() wdt_reset()
00114 #endif
00115
00116 #endif
00117
00118