Du wartest auf den Interrupt, aber der ist gar nicht enabled.
Statt dessen ist folgendes besser:
Code:inline uint8_t readADC0( void ) { ADCSRA |= (1<<ADSC); //start conversion // wait until conversion complete while ( ADCSRA & (1<<ADSC) ) { ; } return ADCH; // 8 bit read } void initADC( uint8_t adcPrescaler ) { // External VRef (2.5V), ADC Pin0, Left adjusted result (we use only 8 bits) // hence ADCSRB doesn't need modification ADMUX = (1<<ADLAR); DIDR0 = (1<<ADC0D); // prescaler 64 ( =288KHz at 18.432MHz CPU clock) // prescaler 128( =144KHz at 18.432MHz CPU clock)--> | (1<<ADPS0) ADCSRA = (1<<ADEN) | adcPrescaler; }






Zitieren

Lesezeichen