Code:uint16_t ReadChannel(uint8_t channel) { uint8_t i; uint16_t result = 0; ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1); ADMUX = channel; ADMUX |= (1<<REFS1) | (1<<REFS0); ADCSRA |= (1<<ADSC); while(ADCSRA & (1<<ADSC)); result = ADCW; result = 0; for(i=0; i<3; i++) { ADCSRA |= (1<<ADSC); while(ADCSRA & (1<<ADSC)); result += ADCW; } ADCSRA &= ~(1<<ADEN); result /= 3; return result; }
Lesezeichen