Hallo liebe Forennutzer. Ich würde gerne einen externen Interrupteingang des mega128 benutzen, um die Betriebsspannung zu überwachen. Der Interrupt soll auf eine fallende Flanke programmiert werden, dann wird der Prozessor runtergetaktet und alles Überflüssige abgeschaltet um die Backup-Batterie zu schonen. Frage: Kann ich in der Interrupt-Routine den Eingang auf eine steigende Flanke umprogrammieren, so dass ich auch bei Rückkehr der versorgungsspannung einen Interrupt auslösen kann? Die Aufbereitung, welche Flanke es nun war, muss dann natürlich in der I-Routine erfolgen.
Klar kannste in der ISR den IRQ wieder umstellen. Wenn du aber eh nirgendes speicherst, obs grad falling oder rising edge ist, kannste auch einfach auf "on any change" schalten, d.h. egal ob hoch oder runter. Dann prüfst du einfach, ob der PIN high oder low ist, und weist dann, ob ein- oder ausschalten.
Ich würde auf jede Flanke reagieren (fallend und steigend) und in der ISR den Portpin auslesen (wenn das nicht gehen sollte was ich nicht glaubekönnte mann eien anderen für diesen zweck nutzen)um die Spannungszustand zu bestimmen. Das ist in jedem Falle fehlerfrei programmmierbar. Das Eergebnis würde ich direkt in ein Flag übertragen welches im Hauptprogramm genutzt wird, die Entscheidung zu treffen, welche Hardware mit Strom versorgt wird und welche Prozesse folglich ausgeführt werden und welche übersprungen werden. PS. Das nichtversorgen von Sensoren(analog wie digitaleingänge betreffend) kann fehlerhafte Interupts und Messungen bringen welche folglich eleminiert werden. MFG Winne
Ich arbeite zwar nicht mit dem Mega128, aber bei vielen anderen AVRs kann man im "Stromspar-"Sleepmode keine flankengetriggerten externen Interrupt auslösen, da dazu der Takt gebraucht wird, den man ja im Stromsparmode abschalten möchte. Es geht vermutlich nur der Level-Interrupt. Alternativ kann man den Watchdog benutzen (längste mögliche Zeit) und in der Watchdog-ISR einfach den Portpin mit der Stromversorgung prüfen und bei Nichtvorhandensein ein Flag setzen, worauf das Hauptprogramm den Controller sofort wieder mit aktiviertem Watchdog "ins Koma" schickt... Wie gesagt, das sind Möglichkeiten auf anderen Megas, welche Möglichkeiten speziell der Mega128 bietet (und wie der Stromspar-Mode beim 128er heißt), müsst ihr schon selbst im Datenblatt recherchieren. ...
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.