sleep.h
Go to the documentation of this file.00001
00038 #ifndef SLEEP_H
00039 #define SLEEP_H
00040
00041 #include <compiler.h>
00042
00057 #if defined(__ICCAVR__) || defined(__DOXYGEN__)
00058 # include <intrinsics.h>
00060 # define sleep_enter() __sleep()
00061
00065 static inline void sleep_enable(void)
00066 {
00067 SLEEP.CTRL |= SLEEP_SEN_bm;
00068 }
00069
00073 static inline void sleep_disable(void)
00074 {
00075 SLEEP.CTRL &= ~SLEEP_SEN_bm;
00076 }
00077
00078 #elif defined(__GNUC__)
00079 # include <avr/sleep.h>
00080 # define sleep_enter() sleep_cpu()
00081
00082 #else
00083 # error Unsupported compiler.
00084 #endif
00085
00091 static inline void sleep_set_mode(enum SLEEP_SMODE_enum mode)
00092 {
00093 SLEEP.CTRL = mode | (SLEEP.CTRL & ~SLEEP_SMODE_gm);
00094 }
00095
00097
00098 #endif