www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2x ADC, 1 mal mit und einmal ohne interrupt


Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hänge mal wieder seit ein paar Stunden an einem Problem:
Also die Ausgangslage ist folgende:

Ich habe 2 AD Channel an.
Der eine wird mit einem Timer alle 0,5 Sekunden gemessen, der andere 
wird das erstemal durch den 0,5s Timer gestartet und löst dann ein 
Interrupt aus, indem er das gemessene ergebnis dann auswertet und sich 
selbst ernuet startet. Falls der ADC vom Timerinterrupt aktiv wird 
startet er ganz am Ende des Interrupts den anderen ADC wieder (der mit 
dem Interrupt, wenn die Wandlung fertig ist).
Mein Problem ist nun, dass sobald der ADC mit Timer gestartet wurde, der 
andere ADC (der ein Interrupt bei fertiger Wandlung auslöst) bei der 
ersten Messung einen falschen Wert erhält.
Ich hab keine Idee mehr was ich noch probieren könnte. Habt ihr 
vielleicht mal selbiges Problem gehabt oder habt eine Vermutung, was ich 
nicht beachtet habe?

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst nach dem Umschalten des MUX min. 40µs Pause machen, sonst 
gibt's eine Fehlmessung. Beim Umschalten der Betriebsart (z.B. 
single-ended auf differentiell) sogar 120µs! STeht übrigens im 
Datenblatt. Wenn du eine Wandlung einleitest (im Timer-INT), dann wird 
das ADC-Complete (oder so) - Flag gesetzt und der ADC-INT erfolgt gleich 
beim Verlassen des Timer-INTs. Also gezielt das ADC-Complete (oder so) - 
Flag vor dem Verlassen des Timer-INTs rücksetzen.

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Sonic!

Es lag tatsächlich an der fehlenden 40us Pause! Wiedermal nicht 
aufmerksam genug durchs datenblatt gewandert.

Bin jetzt grade super glücklich... was mich dieses Forum schon an Zeit 
erspart hat...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.