µC nach gewisser Zeit abschalten

Gast #422527
Sleep-Modes sind klar, hab ich auch schon programmiert. Die Frage war 
wohl etwas falsch gestellt.

An welche Bedingungen könnten sich die Sleep-Modes denn dann 
orientieren?
#422560
Man könnte auch bei jedem Tastendruck den Watchdow-Timer zurücksetzen, 
dann zu Beginn des Programms nachgucken, wer den Reset ausgelöst hat und 
dann den Controller schlafen schicken. (Das Nachgucken kann man sich 
vermutlich auch sparen...)
Gast #422996
Das mit dem Tastendruck wäre nicht so das Problem. doch die Tasten haben 
eher ne Nebenfunktion.

Hauptaugenmerk wollte ich auf die Potis legen, also die AD-Wandler des 
µC.

Doch wie frag ich nen AD-Wandler in solch einem Fall ab?
Gast #423014
Das geht genauso, man hält sich im Speicher die "alten" Werte der 
A/D-Wandler vor und vergleicht sie mit den neuen. Sind Unterschiede da, 
wird noch an den Potis rumgerührt, sind keine Unterschiede da, ist 
irgendwann die Abschaltbedingung erfüllt. Ich würde einen Zähler 
einführen, der z.B. im Sekunden-Takt aufwärts gezählt wird. In der 
A/D-Abfrage wird dieser Zähler immer dann auf 0 gesetzt, wenn ein 
A/D-Wert sich ändert. Ändert sich eine Zeit lang nichts, läuft der 
Zähler irgendwann über einen festzulegenden Schwellenwert.
Etwas tricky ist das Rauschen der A/D-Wandler, man müsste sich mal 
anschauen, wie groß das tatsächlich ist und evtl. eine Schwelle einbauen 
oder einen Filter realisieren.
Gast #423224
Die Frage ist doch, wie weckst Du den Controller wieder? Die 
verschiedenen Sleep-Modes lassen auch nur einige Weck-Quellen zu. Je 
tiefer der Controller schläft, also je mehr abgeschaltet ist, desto 
weniger Möglichkeiten bleiben. Bei den wirklich stromsparenden Modi 
bleibt nur noch das schalten an einer externen Interruptleitung übrig. 
Den Controller schlafen zu schicken, ist kein Problem. Wie oben erwähnt, 
einen Timer programmieren und eine Variable hochzählen. Wenn diese einen 
bestimmten Wert erreicht hat, den Controller pennen lassen. Jede Aktion 
von außen durch sich ändernde Werte oder Tastendrücke löschen die 
Variable.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.