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?
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.
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...
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.