Hallo, ich hab folgende Funktion geschrieben um von einem PIN von Port a den ADC Wert zu erhalten, aber ich erhalte komischer weise auch wenn nix dran ist werte um ca 486, aber warum ????
Code:
int getADC(uint8_t pin)
{
int adc_value = 0;
ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0); // Prescalar 8
ADMUX = pin;
ADMUX |= (1<<REFS1) | (1<<REFS0); // use internal voltage
ADCSRA |= (1<<ADSC);
while (!(ADCSRA & (1<<ADIF))); // wait for finish converting ADIF bit
adc_value = ADCW; // read result
ADCSRA = (1<<ADIF); // delete ADIF, cause it could trigger ISR
ADCSRA &= (1<<ADEN); // deactivating ADC
return adc_value; // return result
}
Lesezeichen