sorry war der falsche code. das war der urspüngliche![]()
Code:#include <avr/io.h> uint16_t auswertung (void); volatile uint16_t wert=0; int main (void) { uint16_t i=0,ergebnis=0; //Ports initialisieren DDRD = 0xFF; //Port C als Ausgang für die LED's PORTD = 0XFF; //Pull Up's aktiviert while(1) { ergebnis = auswertung(); if ( (ergebnis < 512) && (ergebnis > 1) ) { PORTD = (0b11111111); } else PORTD = (0b00000000); } } uint16_t auswertung (void) { //Initialisieren ADCSRA = ((1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)); ADMUX = (1<<MUX0) ; //Dummy Auslesung als Warm-Up wie im Tutorial ADCSRA |= (1<<ADSC); while (ADCSRA & (1<<ADSC)); //Messung ADCSRA |= (1<<ADSC); while (ADCSRA & (1<<ADSC)); wert = ADCL; //ERR wert += (ADCH<<8); //Alternativ 'wert = ADCW;' ADCSRA &= ~(1<<ADEN); //ADC Disable return wert; }







Zitieren

Lesezeichen