Hallo, ich habe Probleme, zwei Analogwerte von den ADC- Ports einzulesen. Ich habe das Forum durchsucht, ähnliche Probleme entdeckt, die mir aber nicht weiterhelfen. Soweit ich es verstanden habe, kann man mit dem Mux- Register die ADC- Quelle wählen. Ich arbeite mit dem Single Conversion Modus und wechsele in der ISR über das Mux den Adc- Port. Die Wandlung starte ich ebenfalls wieder in der ISR. Das funktioniert auch einwandfrei, ich kann die Werte der Adc- Ports einlesen. Wenn jedoch die Werte größer 0 sind, scheint es zu Vertauschungen der Kanäle zu kommen, dabei ist es egal, welcher Kanal >0 ist. Das heißt, der Mod- Kanal hat Werte größer 0, der Vol- Kanal ist 0, dann passiert es dauernd, das die 0 dem Mod- Kanal zugewiesen wird. Dies passiert aber nur, wenn andere Programm- Teile ( Timer Interrupts usw.) aktiv sind. Vielleicht kann ja jemand mal auf den Code der Isr schauen, damit ich weiß, ob die so einwandfrei ist ( auch in Bezug auf andere Interrupts ). Gruß, bytebold
Hallo, hat sich erledigt. Nachdem ich hier gepostet habe und mir den Quelltext nochmal angeschaut habe, habe ich auch den Fehler entdeckt: NoChange: mov LastVolVal, AdcValL ; update last value ist zuviel. Nachdem ich die Zeile gelöscht habe, funtioniert es einwandfrei. So sieht man manchmal den Wald vor lauter Bäumen nicht. Gruß, bytebold
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.