Go to the documentation of this file.00001
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef _WDT_DRV_H_
00045 #define _WDT_DRV_H_
00046
00047
00048
00049 #ifdef __GNUC__
00050 #include <avr/io.h>
00051 #include <avr/wdt.h>
00052 #endif
00053
00054
00055
00056
00059
00060 #define Is_ext_reset() ((MCUSR&(1<<EXTRF)) ? TRUE:FALSE)
00061 #define Ack_ext_reset() (MCUSR= ~(1<<EXTRF))
00062 #define Is_POR_reset() ((MCUSR&(1<<(MCUSR= ~(1<<PORF)))) ? TRUE:FALSE)
00063 #define Ack_POR_reset() (MCUSR= ~(1<<PORF))
00064 #define Is_BOD_reset() ((MCUSR&(1<<BORF)) ? TRUE:FALSE)
00065 #define Ack_BOD_reset() (MCUSR= ~(1<<BORF))
00066 #define Is_wdt_reset() ((MCUSR&(1<<WDRF)) ? TRUE:FALSE)
00067 #define Ack_wdt_reset() (MCUSR= ~(1<<WDRF))
00068
00069 #define Wdt_ack_interrupt() (WDTCSR = (U8)(1<<WDIF))
00070 #define Is_wdt_interrupt() (WDTCSR&(1<<WDIF) ? TRUE:FALSE)
00071 #define Is_not_wdt_interrupt() (WDTCSR&(1<<WDIF) ? FALSE:TRUE)
00072 #define Is_wdt_early_warning() (WDTCKD&(1<<WDEWIF) ? TRUE:FALSE)
00073 #define Is_not_wdt_early_warning() (WDTCKD&(1<<WDEWIF) ? FALSE:TRUE)
00074
00075 #define WDTO_16MS 0
00076 #define WDTO_32MS 1
00077 #define WDTO_64MS 2
00078 #define WDTO_125MS 3
00079 #define WDTO_250MS 4
00080 #define WDTO_500MS 5
00081 #define WDTO_1S 6
00082 #define WDTO_2S 7
00083 #define WDTO_4S 8
00084 #define WDTO_8S 9
00085
00086
00089 void wdtdrv_disable(void);
00090
00091
00096 void wdtdrv_enable( U8 timeout );
00097
00098
00103 void wdtdrv_interrupt_enable( U8 timeout );
00104
00105
00110 void wdtdrv_interrupt_reset_enable( U8 timeout );
00111
00112
00113 #define Soft_reset() {asm("jmp 0000");}
00114
00116
00117 #endif // _WDT_DRV_H_
00118