Gast
#1012071
Hallo Habe Folgendes Problem: Ich benutze einen Atmega 32 mit dem ich einen Analogwert einlesen möchte. Dieser soll in der Variablen „temp1“ abgelegt werden. Später will ich diesen auf einem LC-Display auslesen können. Im Anhang findet ihr ein Schaltbild wie ich zum Testen ein Poti am Analogeingang habe. Kann es sein das ich es Falsch angeschossen habe? Ich Wollte ohne interne Referenzspannung Messen können. Später will ich mit einem LM35CZ eine Temperatur erfassen. Um nun den Analogeingang zu testen habe ich vorerst dieses Programm geschrieben. Leider Kriege ich keine Ausgabe, bzw. die Variable wird nicht beschrieben. Kann mir einer sagen was ich Falsch gemacht habe? uint16_t ReadChannel(uint8_t mux) char temp1; { uint16_t Temperatur; ADMUX = (1<<REFS0) | (1<<MUX0); // Referenzspannung von AVCC nutzen//PortA0 ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS2); //Analogwandlung ein//Teilungsfaktor 32 /* "Dummy-Readout" */ ADCSRA |= (1<<ADSC); // eine ADC-Wandlung while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } Temperatur = ADCW; // ADCW muss einmal gelesen werden, // sonst wird Ergebnis der nächsten Wandlung // nicht übernommen. / *Messung */ Temperatur = 0; ADCSRA |= (1<<ADSC); // eine Wandlung "single conversion" while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } ADCSRA &= ~(1<<ADEN); // ADC deaktivieren Temperatur=ADCW; temp1=Temperatur; } Danke für eure Bemühungen
