Re: AD-Wandlung Kategorie: Programmierung C (von Franz-Peter - 1.12.2012 10:14) | ||
Als Antwort auf Re: AD-Wandlung von Felix - 30.11.2012 9:42 | ||
| ||
> Hallo Franz-Peter > danke für deine antwort. > für die befehle ADC_ReadInt brauch man doch nicht extra eine interruptroutine definieren oder? hab > gelesen, dass durch diese Int-befehle sichergestellt wird, dass ein analogwert gewandelt wurde > und bereit liegt, ich kann auch die normalen ad-befehle in der funktion abstand ausführen lassen > und es kommt zum selben ergebnis > ich hab im programm nur eine interruptfunktion und diese ist für die eigene rtc, damit > die messwerte einen zeitstempel bekommen Hallo Felix, wenn Du eine AD-Wandlung startest, steht das Ergebnis nicht sofort zur Verfügung. Der ATMega braucht lt Datenblatt dazu 13-270µs. Wieviel das im konkreten Fall ist, hängt von verschiedenen Faktoren ab. Um sicherzustellen, dass man das Ergebnis erst nach der Wandlung liest, bietet der ATMega 2 Möglichkeiten. Entweder man pollt sein 'Busy'-Bit, oder man lässt ihn einen Interrupt auslösen, wenn die Wandlung fertig ist. Welche Variante du nimmst, hängt nun davon ab, Ob Du ADC_Set, oder ADC_SetInt für die Initialisierung nutzt. Wenn Du den Wert dann mit ADC_Read liest, wartet die Routine, bis die Wandlung fertig ist (Polling). Liest Du mit ADC_ReadInt, geht die Routine davon aus, dass die Wandlaung abgeschlossen ist, da ja der Interrupt ausgelöst wurde. Das stimmt aber nur, wenn Du sie auch im Interrupt aufrufst. Wenn Du sie direkt nach dem ADC_Start aufrufst, ist es Zufall, ob die Wandlung bereits abgeschlossen ist oder nicht. In Deinem Fall würde ich einfach die Variante ohne Int verwenden - dann bist Du da auf der sicheren Seite. Klar hei�t dass nicht, dass damit deine Probleme gelöst sind - das kann ja auch andere Ursachen haben. Aber Du bist dann sicher, dass es am Auslesezeitpunkt nicht liegt. Hast Du am AREF-Pin einen Kondensator (und sonst nichts!) angeschlossen, um die interne Referenz zu entstören? Gru� Franz-Peter | ||
Antwort schreiben Antworten: Re: AD-Wandlung (von Felix - 3.12.2012 10:37) Re: AD-Wandlung (von Franz-Peter - 3.12.2012 11:39) Re: AD-Wandlung (von Felix - 3.12.2012 12:22) Re: AD-Wandlung (von Torsten - 3.12.2012 19:46) Re: AD-Wandlung (von Felix - 12.12.2012 8:46) Re: AD-Wandlung (von Felix - 7.01.2013 13:51) Re: AD-Wandlung (von Torsten - 7.01.2013 19:08) Re: AD-Wandlung (von Felix - 8.01.2013 9:10) Re: AD-Wandlung (von Torsten - 9.01.2013 19:01) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum