48 #include <avr/pgmspace.h>
52 #define PRINTF(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
57 static uint8_t aref_connected;
60 adc_init(uint8_t mode, uint8_t ref)
62 ADCSRA = ((ADC_ENABLE) | (ADC_PRESCALE_64));
70 ADCSRA |= (1 << ADSC);
71 while (ADCSRA & (1 << ADSC));
74 PRINTF(
"adc: AREF unconnected\n");
77 PRINTF(
"adc: AREF connected\n");
83 PRINTF(
"adc: Internal reference voltage not allowed!\n");
90 ADCSRB |= (0x07 & mode);
91 ADCSRA |= ((ADC_TRIGGER_ENABLE) | (ADC_INTERRUPT_ENABLE));
98 static uint8_t used_adcs = 0;
101 used_adcs |= (1 << mux);
112 if (ADCSRA & ADC_TRIGGER_ENABLE) {
117 while (ADCSRA & (1 << ADSC)) {