Hallo ich möchte meine Platine stromsparend betreiben und werde dem Controller zwischendurch eine Ruhepause gönnen (Sleep modus) Wie kann ich es am geschicktesten anstellen, alle 1,2,3 sekunden 2-3 analoge Signale abzufragen. Bisher habe ich einmal vor der WhileSchleife den ADC initialisiert und eine analoge Messung im Programm durchgeführt. Das ist im aktuellen Fall nicht mehr nötig sondern ein Messintervall von 2,3 Sekunden ist ausreichend. Jetzt mit dem Stromsparmodus suche ich eine eine andere Möglichkeit. - Soll ich den ADC nach jeder Messung abschalten? - Muss vor der Messung jedes mal erneut ein Dummy Read-out gemacht werden? - Wie kann ich vorgehen? In der Timer ISR eine ADC Messung auslösen? und in der ADC ISR die Messung auswerten? Bin über hilfreiche Tipps sehr dankbar.
Mike schrieb: > Hallo > > ich möchte meine Platine stromsparend betreiben und werde dem Controller > zwischendurch eine Ruhepause gönnen (Sleep modus) > > Wie kann ich es am geschicktesten anstellen, alle 1,2,3 sekunden 2-3 > analoge Signale abzufragen. > > Bisher habe ich einmal vor der WhileSchleife den ADC initialisiert und > eine analoge Messung im Programm durchgeführt. Das ist im aktuellen Fall > nicht mehr nötig sondern ein Messintervall von 2,3 Sekunden ist > ausreichend. > > Jetzt mit dem Stromsparmodus suche ich eine eine andere Möglichkeit. > - Soll ich den ADC nach jeder Messung abschalten? > - Muss vor der Messung jedes mal erneut ein Dummy Read-out gemacht > werden? > - Wie kann ich vorgehen? In der Timer ISR eine ADC Messung auslösen? und > in der ADC ISR die Messung auswerten? > > Bin über hilfreiche Tipps sehr dankbar. Das geht beides nicht. Ein Intel MCS-48 hat weder einen AD-wandler noch einen Sleepmode. mfg.
Ohhh Mist es geht um Atmel Controller, hier bei mir speziell um den AT90CAN Sorry für die Informationsvorenthaltung...
Mike schrieb: > Jetzt mit dem Stromsparmodus suche ich eine eine andere Möglichkeit. > - Soll ich den ADC nach jeder Messung abschalten? > - Muss vor der Messung jedes mal erneut ein Dummy Read-out gemacht > werden? > - Wie kann ich vorgehen? In der Timer ISR eine ADC Messung auslösen? und > in der ADC ISR die Messung auswerten? Was willst du da brainstormen? Es ist doch alles bekannt. Schau in das Datenblatt deines Prozessors bei welchem Modus er welchen Strom benötigt und entscheide selbst. Wenn gar nichts mehr hilft kannst du die Stromaufnahme sogar selbst messen (z.B. über Kondensatorentladung) ;-).
Der Rächer der Transistormorde schrieb: > Was willst du da brainstormen? Es ist doch alles bekannt. Dir ist es vielleicht aus deinen bisherigen Erfahrungen bekannt, mir aber noch nicht. Bisher habe ich den AD-Wandler 1x initialisiert und dann im programm Messungen gemacht. Jetzt würde ich ihn gerne hauptsächlich ausgeschaltet lassen und nur alle 2 Sekunden für die Messungen aufwecken. Reicht es ihn einzuschalten oder muss der Dummy-Readout gemacht werden, wie geht man da am besten vor, ohne das Rad neu zu erfinden...
Hallo Mike, wenn Du ihn aus und wieder einschalltest, dann würde ich immer eine Dummywandlung machen und das Ergebnis verwerfen. Auch sollte man sich genügend Zeit zwischen Wechsel des Kanals und dem Start einer neuen Wandlung lassen --> Datenblatt. Für ein Messergebnis verwende ich zwischen 4 - 16 ADC-Werte zur Mittelwertbildung. Dann hat der ADC noch zwei Messungenauigkeiten, einen offset Fehler und einen linearitäts Fehler. Den gleiche ich immer mit einem 2-Punkt Abgleich, bei einer kleinen (~8% Vref) und größeren Spannung (~80% Vref) aus. Die Berechnung kann mit Fix-Point-Arithmetik, also als Long mit einer Skalierung mit 65536=2^16 erfolgen.
:
Bearbeitet durch User
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.