hallo zusammen,
ich habe ein Potentiometer an den ADC Eingang 2 eines atmega8 angeschlossen.
Nun möchte ich, dass wenn ich an diesem Poti drehe, je nachdem welcher wert am poti eingestellt ist, die eine bzw. die andere LED leuchtet.
Ich habe hier schonmal ein Code.
Allerdings funktioniert der nicht ganz.
was ist falsch??
Diese Fehlermeldung kommt:Code:#include <avr/io.h> void adc_init (void){ //interne Referenzspannung //ADMUX = 0xC0; //AVCC //ADMUX = 0x40; //AREF ADMUX = 0xC0; ADCSRA = 0x80; //ADC aktivieren, Rest 0 setzen //ADCSRA |= 0x01; //Vorteiler 2 //ADCSRA |= 0x02; //Vorteiler 4 //ADCSRA |= 0x03; //Vorteiler 8 //ADCSRA |= 0x04; //Vorteiler 16 ADCSRA |= 0x05; //Vorteiler 32 //ADCSRA |= 0x06; //Vorteiler 64 //ADCSRA |= 0x07; //Vorteiler 128 ADCSRA |= (1<<6); //Konvertierung starten while(ADCSRA & (1<<6)){}; //Kovertierung beendet uint16_t ergebnis = 0; ergebnis = ADCL; ergebnis += (ADCH<<8); } uint16_t adc_read (uint8_t kanal){ static uint8_t init = 0; if(init==0){adc_init(); init++;} //beim ersten Aufruf zunaechst initialisieren ADMUX &= (0xE0); //Vorhandenen Wert fuer den Kanal loeschen //den Wert fuer den Kanal schreiben, dabei die vorderen 3 Bits vor evtl. fehlern schuetzen ADMUX |= (kanal&(0x1F)); ADCSRA |= (1<<6); //Konvertierung starten while(ADCSRA & (1<<6)){}; //Kovertierung beendet uint16_t ergebnis = 0; ergebnis = ADCL; ergebnis += (ADCH<<8); return ergebnis; //Ergebnis zurueckgeben } int main(void) { float messung; DDRD = 0b00111111; while(1) { messung = adc_read(uint8_t x); if( messung<=1 ){ PORTD = 0b00000001; } else { PORTD = 0b00000010; } } }
Error 1 expected expression before 'uint8_t' C:\Dokumente und Einstellungen\user\Desktop\Fader_poti\Fader_2\Fade r_2\Fader_2.c 73 22 Fader_2
was ist an dem Code falsch???
Vielen lieben Dank für eure Unterstützung!!!
Gruß
Fabi
Lesezeichen