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;
}
Lesezeichen