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
00046
00047
00048 #ifndef _POWER_DRV_H_
00049 #define _POWER_DRV_H_
00050
00051 #ifdef __GNUC__
00052 #include <avr/power.h>
00053 #endif
00057
00058
00059
00060 #define Setup_idle_mode() (SMCR=0,SMCR |= (1<<SE))
00061 #define Setup_power_down_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM1))
00062 #define Setup_adc_noise_reduction_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM0))
00063 #define Setup_power_save_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM1)+(1<<SM0))
00064 #define Setup_standby_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM2)+(1<<SM1))
00065 #define Setup_ext_standby_mode() (SMCR=0,SMCR |= (1<<SE)+(1<<SM2)+(1<<SM1)+(1<<SM0))
00066
00069 #ifdef __GNUC__
00070 #define Clear_prescaler() (clock_prescale_set(0))
00071 #else
00072 #define Clear_prescaler() (Set_cpu_prescaler(0))
00073 #endif
00074
00079 #ifdef __GNUC__
00080 #define Set_cpu_prescaler(x) (clock_prescale_set(x))
00081 #else
00082 extern void Set_cpu_prescaler(U8 x);
00083 #endif
00084
00085
00086 #define Sleep_instruction() {asm("SLEEP");}
00087
00088
00089 #define Set_power_down_mode() set_power_down_mode()
00090 #define Set_idle_mode() set_idle_mode()
00091
00092
00093
00094 void set_idle_mode(void);
00095 void set_power_down_mode(void);
00096 void set_adc_noise_reduction_mode(void);
00097 void set_power_save_mode(void);
00098 void set_standby_mode(void);
00099 void set_ext_standby_mode(void);
00100
00103 #define Enter_idle_mode() (set_idle_mode())
00104
00107 #define Enter_power_down_mode() (set_power_down_mode())
00108
00111 #define Enter_adc_noise_reduction_mode() (set_adc_noise_reduction_mode())
00112
00115 #define Enter_power_save_mode() (set_power_save_mode())
00116
00119
00120 #define Enter_standby_mode() (set_standby_mode())
00121
00124 #define Enter_ext_standby_mode() (set_ext_standby_mode())
00125
00126
00128
00129 #endif // _POWER_DRV_H_
00130