Hallo, habe folgendes Prog geschrieben, das bis jetzt einwandfrei funktioniert. void main() { lcd_ini(); lcd_gotoline(1); lcd_writetext("ADC0:"); lcd_gotopos(1,11); lcd_writetext("V"); lcd_gotoline(2); lcd_writetext("ADC1:"); lcd_gotopos(2,11); lcd_writetext("V"); // Activate ADC with Prescaler 16 --> 1Mhz/16 = 62.5kHz ADCSRA = _BV(ADEN) | _BV(ADPS2); while (1)// Endlosschleife { // Select pin ADC0 using MUX ADMUX = 0; //Start conversion ADCSRA |= _BV(ADSC); // wait until converstion completed while (ADCSRA & _BV(ADSC) ) {} // get converted value double x = ADCW/1023.0*5.0; char buffer[5]; sprintf(buffer,"%.3f",x); //Makefile_eigen in den Optionen einstellen lcd_gotopos(1,6); lcd_writetext(buffer); } } Der AD Wert an ADC0 wird am LCD Display angezeigt und mit 3 nachkommastellen ausgegeben. Meine Frage: Wie lese ich gleichzeitig an ADC0 und ADC1....2 .3... Werte ein Werden die Werte nicht immer in ADCW geschrieben?!.. wie löse ich das.? m.f.G. Stögi
stoegi wrote: > Wie lese ich gleichzeitig an ADC0 und ADC1....2 .3... Einfache antwort: gar nicht. > Werte ein > Werden die Werte nicht immer in ADCW geschrieben?!.. Ja natürlich > wie löse ich das.? Die beiden Kanäle abwechselnd hintereinander einlesen. Es gibt am Chip nur einen ADC. Aber man kann verschiedene Eingangspins abwechselnd an diesen ADC schalten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.