ADC Port auslesen

OP #709953
Lesenswert?
• ▲
▼
Hallo zusammen,
ich habe einen AT90CAN128.
ich lese zu beginn meines Programmes alle 8 ADC-Ports direkt 
nacheinander ein. nun stelle ich fest, dass sich die Werte gegenseitig 
beeinflussen, sprich: wenn ich das zu messende Spannungssignal am ersten 
ADC-Port verändere, so verändern sich auch alle nachfolgenden Werte der 
7 weiteren Ports, obwohl die dort anliegenden Signale konstant geblieben 
sind.
weiß jem woran es liegen könnte. ich lese bei jeder Messung immer einen 
"WarmUP" Wert aus und setze die Variablen immer wieder auf 0 zurück.
die Funktion aus dem "AVR-GCC-Tutorial" was ich hier mal gefunden habe. 
ich habe sie etwas verändert, nicht viel.

mfg
Andreas
Angehängte Dateien:
#709962
Lesenswert?
• ▲
▼
Ich kann im Code konkret keine dicken Fehler entdecken. Allerdings ist 
der Code erstens unvollständig (wo ist main?) und außerdem unformatiert 
und somit schlecht lesbar.

Abgesehen davon: Ich kenne keinen AVR-C-Compiler, der keinen 
16-Bit-Zugriff auf die ADC-Ergebnisregister unterstützt. Das Gefuddel 
mit der richtigen Reihenfolge beim Auslesen und High-Byte schieben usw. 
ist in C überflüssig.
OP #709970
Lesenswert?
• ▲
▼
das wäre meine 2. frage gewesen. in dem tutorial hat er ein 8bit 
register ausgelesen. und hat sich auch immer den mittelwert aus 4 
messungen von der funktion Readchannel() zurückgeben lassen. deswegen 
ist da auch die for-schleife noch drin.
Ich wußte nicht, wie ich das bei zwei 8bit registern (10bit adc-port) 
machen sollte, deswegen hab ich da rumgeschoben.
kannst du mir sagen, wie du die werte der ADCH- und ADCL-register 
übergeben würdest? so, dass man auch nen mittelwert bilden kann.
#710238
Lesenswert?
• ▲
▼
Tag zusammen,

@ Andreas R.

Könntest du deinen jetzt funktionierenden Code mal bitte posten!?

Ich will in den nächsten Wochen auch mal n bissel mit ADC-Ports 
rumspielen und bin nicht grade die größte Leuchte was C angeht, da sind 
beispiele immer hilfreich!

Danke im Voraus!!!

Gruß Bouni

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.