00001
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
00045 #ifndef _POWER_DRV_H_
00046 #define _POWER_DRV_H_
00047
00048 #ifdef __GNUC__
00049 #include <avr/power.h>
00050 #endif
00054
00055
00056
00057 #define Setup_idle_mode() (SMCR=0,SMCR |= (1<<SE))
00058 #define Setup_power_down_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM1))
00059 #define Setup_adc_noise_reduction_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM0))
00060 #define Setup_power_save_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM1)+(1<<SM0))
00061 #define Setup_standby_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM2)+(1<<SM1))
00062 #define Setup_ext_standby_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM2)+(1<<SM1)+(1<<SM0))
00063
00066 #ifdef __GNUC__
00067 #define Clear_prescaler() (clock_prescale_set(0))
00068 #else
00069 #define Clear_prescaler() (Set_cpu_prescaler(0))
00070 #endif
00071
00076 #ifdef __GNUC__
00077 #define Set_cpu_prescaler(x) (clock_prescale_set(x))
00078 #else
00079 extern void Set_cpu_prescaler(U8 x);
00080 #endif
00081
00082
00083 #define Sleep_instruction() {asm("SLEEP");}
00084
00085
00086 #define Set_power_down_mode() set_power_down_mode()
00087 #define Set_idle_mode() set_idle_mode()
00088
00089
00090
00091 void set_idle_mode(void);
00092 void set_power_down_mode(void);
00093 void set_adc_noise_reduction_mode(void);
00094 void set_power_save_mode(void);
00095 void set_standby_mode(void);
00096 void set_ext_standby_mode(void);
00097
00100 #define Enter_idle_mode() (set_idle_mode())
00101
00104 #define Enter_power_down_mode() (set_power_down_mode())
00105
00108 #define Enter_adc_noise_reduction_mode() (set_adc_noise_reduction_mode())
00109
00112 #define Enter_power_save_mode() (set_power_save_mode())
00113
00116
00117 #define Enter_standby_mode() (set_standby_mode())
00118
00121 #define Enter_ext_standby_mode() (set_ext_standby_mode())
00122
00123
00125
00126 #endif // _POWER_DRV_H_
00127