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