Forum: Mikrocontroller und Digitale Elektronik Mehrere ADC Kanäle lesen


von Jan N. (jan_n497)


Lesenswert?

Hallo Community,
Ich hätte da mal ne Frage, und zwar habe ich 2 Poti's die an ADC1 und 
ADC2 meines Atmeag328p angeschlossen sind. Ich bastle mir nämlich mein 
eigenes Homecockpit zurzeit, da ich ein begeistert FSX Pilot bin. Und 
diese 2 Poti's sind einmal für die Geschwindigkeit und einmal für das 
Heading(Kurs). Ein Poti auszulesen ist ja nicht wirklich schwer. Aber 
wie kann ich zwei Auslesen?
1
//Setup ADC
2
ADMUX = (1<<REFS0) | (1<<MUX0);
3
ADCSRA = (1<<ADEN) | (1<<ADPS0) | (1<<ADPS1) | (1<<ADPS2);
4
5
//Frist Init
6
ADCSRA |= (1<<ADSC);
7
while(ADCSRA & (1<<ADSC)) {}
8
9
int adcvalue = ADC;
10
11
Mit adcvalue was machen....
Kann mir da einer helfen?

Mfg jan niehues

: Bearbeitet durch User
von Sascha (Gast)


Lesenswert?

Du setzt MUX0 auf 0 und liest damit ADC0 aus.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Lies dir einfach mal hier im Tutorial die ADC Kapitel durch:
https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

und dann, wie man es in C macht:
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Analoge_Ein-_und_Ausgabe

von Rechdschraiblehra (Gast)


Lesenswert?

Jan N. schrieb:
> und zwar habe ich 2 Poti's

http://www.deppenapostroph.info

von Sebastian (Gast)


Lesenswert?

Hintereinander.

Du stellst die Register so ein, dass auf dem einen Kanal ADC gewandelt 
wird, wartest, bis das Ergebnis da ist (z.B. mit Interrupt Handler), und 
stellst dann die Register so ein, dass auf dem anderen Kanal ADC 
gewandelt wird.

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
Noch kein Account? Hier anmelden.