BeRTOS
|
00001 00038 #ifndef DRV_ADC_AT91_H 00039 #define DRV_ADC_AT91_H 00040 00041 #include <hw/hw_cpufreq.h> 00042 00043 #include "cfg/cfg_adc.h" 00044 00045 #include <cfg/compiler.h> 00046 00050 #define ADC_MUX_MAXCH 8 //Max number of channel for ADC. 00051 #define ADC_BITS 10 //Bit resolution for ADC converter. 00052 00057 #define ADC_COMPUTED_PRESCALER (DIV_ROUNDUP(CPU_FREQ, 2 * CONFIG_ADC_CLOCK) - 1) 00058 #define ADC_COMPUTED_CLOCK (CPU_FREQ / ((ADC_COMPUTED_PRESCALER + 1) * 2)) 00059 #define ADC_COMPUTED_STARTUPTIME (((CONFIG_ADC_STARTUP_TIME * ADC_COMPUTED_CLOCK) / 8000000UL) - 1) 00060 #define ADC_COMPUTED_SHTIME ((uint32_t)((CONFIG_ADC_SHTIME * (uint64_t)ADC_COMPUTED_CLOCK) / 1000000000UL) - 1) 00061 00070 #if CPU_ARM_SAM7X 00071 #define ADC_PIO_DISABLE PIOB_PDR 00072 #define ADC_PIO_EN_FUNC PIOB_ASR 00073 00074 #elif CPU_ARM_SAM7S_LARGE 00075 #define ADC_PIO_DISABLE PIOA_PDR 00076 #define ADC_PIO_EN_FUNC PIOA_BSR 00077 00078 #else 00079 #error No ADC pins name definitions for selected ARM CPU 00080 #endif 00081 /*\}*/ 00082 00087 #define ADC_INIT_PINS() \ 00088 do { \ 00089 } while (0) 00090 00091 void adc_hw_select_ch(uint8_t ch); 00092 uint16_t adc_hw_read(void); 00093 void adc_hw_init(void); 00094 00095 #endif /* DRV_ADC_AT91_H */