X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fdrv%2Fadc_avr.c;h=33beeca39acad872e9c60739af403f8f3a968472;hb=38b2221716fa0f648860e1cec14f819daf8cb031;hp=ec131745290da92da4c6a682b866df408098d0fd;hpb=d62963b4a64efe8d2917f489fefaf586a9a99126;p=bertos.git diff --git a/bertos/cpu/avr/drv/adc_avr.c b/bertos/cpu/avr/drv/adc_avr.c index ec131745..33beeca3 100644 --- a/bertos/cpu/avr/drv/adc_avr.c +++ b/bertos/cpu/avr/drv/adc_avr.c @@ -33,15 +33,21 @@ * * \version $Id$ * \author Francesco Sacchi + * + * This module is automatically included so no need to include + * in test list. + * notest: avr */ #include "adc_avr.h" -#include -#include +#include "cfg/cfg_adc.h" +#include "cfg/cfg_kern.h" #include #include +#include // IRQ_ASSERT_ENABLED() + #include #include @@ -51,7 +57,7 @@ #define ADC_AVR_AVCC 1 #define ADC_AVR_INT256 2 -#if CONFIG_KERNEL +#if CONFIG_KERN #include #include #include @@ -75,7 +81,7 @@ { sig_signal(adc_process, SIG_ADC_COMPLETE); } -#endif /* CONFIG_KERNEL */ +#endif /* CONFIG_KERN */ /** * Select mux channel \a ch. @@ -84,7 +90,7 @@ INLINE void adc_hw_select_ch(uint8_t ch) { /* Set to 0 all mux registers */ - ADMUX &= ~(BV(MUX3) | BV(MUX3) | BV(MUX2) | BV(MUX1) | BV(MUX0)); + ADMUX &= ~(BV(MUX4) | BV(MUX3) | BV(MUX2) | BV(MUX1) | BV(MUX0)); /* Select channel, only first 8 channel modes are supported for now */ ADMUX |= (ch & 0x07); @@ -104,9 +110,9 @@ INLINE uint16_t adc_hw_read(void) // Start convertion ADCSRA |= BV(ADSC); - #if CONFIG_KERNEL + #if CONFIG_KERN // Ensure IRQs enabled. - ASSERT(IRQ_ENABLED()); + IRQ_ASSERT_ENABLED(); adc_process = proc_current(); sig_wait(SIG_ADC_COMPLETE); #else @@ -141,13 +147,15 @@ INLINE void adc_hw_init(void) #error Unsupported ADC ref value. #endif + #if defined(ADCSRB) /* Disable Auto trigger source: ADC in Free running mode. */ ADCSRB = 0; - + #endif + /* Enable ADC, disable autotrigger mode. */ ADCSRA = BV(ADEN); - #if CONFIG_KERNEL + #if CONFIG_KERN MOD_CHECK(proc); ADCSRA |= BV(ADIE); #endif