Forum: Compiler & IDEs ADC Kanal wechseln


von Stefan S. (Gast)


Lesenswert?

Hallo,

bin noch relativ unerfahren bei der Mikrocontroller Programmierung.
Hoffe, ihr könnt mir etwas weiter helfen.

Ich möchte gerne zum Anfang eines Programm einen ADC Kanal auslesen.
Sobald dies geschehen ist, möchte ich, dass bei einem Tasterdruck ein 
anderer Kanal ausgelesen wird:
1
while (run)
2
{
3
   for(;;)
4
   {
5
      uint16_t result= readADC(0);  // Kanal 0 einlesen
6
     
7
       // result auswerten und bearbeiten...
8
9
       if( push( PINC, PC5 ) )  // Drücken eines Tasters
10
       {
11
         uint16_t result= readADC(4);  // Kanal 4 einlesen
12
13
       // result auswerten und bearbeiten...

Führe ich die Befehle einzeln aus, so klappen jeweils beide ohne 
Probleme.
Zusammen jedoch ergeben sich Schwierigkeiten, was meiner Meinung nach 
logisch ist, da Kanal 0 permanent ausgelesen wird und das gleichzeitige 
Auslesen von mehreren Kanälen nicht möglich ist.

Aber wie beende ich die Umwandlung von Kanal 0 und starte die von Kanal 
4?

Vielen Dank für die Hilfe....

von Oliver (Gast)


Lesenswert?

Stefan S. schrieb:
> was meiner Meinung nach
> logisch ist, da Kanal 0 permanent ausgelesen wird und das gleichzeitige
> Auslesen von mehreren Kanälen nicht möglich ist.

Da wird nichts permanent ausgelesen. In der Reihenfolge, in der du das 
hinschreibst, wird der Code auch ausgeführt. Schön sequentiell.

Falls du nicht auch noch Fehler in deiner Funktion readADC() hast (da 
hilft dir dann das Tutorial weiter), wird dir vermutlich der scope der 
beiden Variablen result einen Streich spielen.

Oliver

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.