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
00073 #ifdef __GNUC__
00074 #define Clear_prescaler() (clock_prescale_set(0))
00075 #else
00076 #define Clear_prescaler() (Set_cpu_prescaler(0))
00077 #endif
00078
00088 #ifdef __GNUC__
00089 #define Set_cpu_prescaler(x) (clock_prescale_set(x))
00090 #else
00091 extern void Set_cpu_prescaler(U8 x);
00092 #endif
00093
00094
00095 #define Sleep_instruction() {asm("SLEEP");}
00096
00097
00098 #define Set_power_down_mode() set_power_down_mode()
00099 #define Set_idle_mode() set_idle_mode()
00100
00101
00102
00103 void set_idle_mode(void);
00104 void set_power_down_mode(void);
00105 void set_adc_noise_reduction_mode(void);
00106 void set_power_save_mode(void);
00107 void set_standby_mode(void);
00108 void set_ext_standby_mode(void);
00109
00118 #define Enter_idle_mode() (set_idle_mode())
00119
00128 #define Enter_power_down_mode() (set_power_down_mode())
00129
00138 #define Enter_adc_noise_reduction_mode() (set_adc_noise_reduction_mode())
00139
00148 #define Enter_power_save_mode() (set_power_save_mode())
00149
00158 #define Enter_standby_mode() (set_standby_mode())
00159
00168 #define Enter_ext_standby_mode() (set_ext_standby_mode())
00169
00170
00172
00173 #endif // _POWER_DRV_H_
00174