00001
00020
00021
00022
00023 #ifndef _DAC_DRV_H_
00024 #define _DAC_DRV_H_
00025
00026
00027
00028
00032
00033
00037
00041 #define Dac_enable() (DACON |= (1<<DAEN))
00043
00047 #define Dac_disable() (DACON &= ~(1<<DAEN))
00049
00053 #define Dac_right_adjust_input() (DACON &= ~(1<<DALA))
00054 #define Dac_left_adjust_input() (DACON |= (1<<DALA))
00056
00057
00061 #define Dac_enable_output() (DACON |= (1<<DAOE))
00062 #define Dac_disable_output() (DACON &= ~(1<<DAOE))
00064
00068 #define Dac_set_8_bits(dac_in) (DACH = (U8)(dac_in))
00069 #define Dac_set_10_bits(dac_in) (DACL = Low((U16)(dac_in)), DACH = High((U16)(dac_in)))
00071
00075 #define Dac_start_left() \
00076 DACON = (0<<DAATE)| \
00077 (0<<DATS0)| \
00078 (0<<DALA) | \
00079 (1<<DAOE) | \
00080 (1<<DAEN);
00082
00086 #define Dac_start_right() \
00087 DACON = (0<<DAATE)| \
00088 (0<<DATS0)| \
00089 (1<<DALA) | \
00090 (1<<DAOE) | \
00091 (1<<DAEN);
00093
00097 #define Dac_set_value(param) \
00098 DACL = Low(param); \
00099 DACH = High(param);
00101
00102 #define Dac_config() \
00103 DACON = (DAC_AUTOTRIG_ENABLE_VALUE<<DAATE)| \
00104 (DAC_TRIGGER_SELECTION<<DATS0)| \
00105 (DAC_LEFT_ADJUST_VALUE<<DALA) | \
00106 (DAC_OUTPUT_ENABLE_VALUE<<DAOE) | \
00107 (DAC_ENABLE_VALUE<<DAEN);
00108
00109
00110
00111 #define DAC_AUTOTRIG_DISABLE 0
00112 #define DAC_AUTOTRIG_ENABLE 1
00113
00114 #define DAC_TRIG_WITH_COMP0 0
00115 #define DAC_TRIG_WITH_COMP1 1
00116 #define DAC_TRIG_WITH_INT0 2
00117 #define DAC_TRIG_WITH_TCCM0 3
00118 #define DAC_TRIG_WITH_TCOVF0 4
00119 #define DAC_TRIG_WITH_TCCM1 5
00120 #define DAC_TRIG_WITH_TCOVF1 6
00121 #define DAC_TRIG_WITH_TCCAP1 7
00122
00123 #define DAC_RIGHT_ADJUST 0
00124 #define DAC_LEFT_ADJUST 1
00125
00126 #define DAC_OUTPUT_DISABLE 0
00127 #define DAC_OUTPUT_ENABLE 1
00128
00129 #define DAC_DISABLE 0
00130 #define DAC_ENABLE 1
00131
00132
00136
00138 void init_dac(void);
00139
00141
00143
00144 #endif // _DAC_DRV_H_
00145