Watchdog für Display-Schoner

Gast #65101
Hallo Leute,

ich habe ein 16X2-Zeichen/Zeilen - LCD-Modul (Conrad-Elektronik)an ein
80C552-System angeschlossen. Da die externe Reset-Beschaltung -
bestehend aus einem Widerstand nach Masse und einem Kondensator nach
Betriebsspannung (+5Volt) schlecht funktioniert hat, obwohl ich einen
hochwertigen Kunststoff-Folien-Kondensator von 10 Mikro-Farad
eingesetzt hatte, kam ich auf die Idee, den integrierten Wachhund
einzusetzen, der, wenn ein Pin des Controllers auf Masse gelegt wird,
ständig in Betrieb ist.

Damit erreichte ich einen einigermassen funktionierenden Reset
(vielleicht liegt es daran, daß das System mit langen Drähten
zusammengesteckt ist oder der Oszillator nicht sauber anspringt oder
...); nun muß ich jetzt aber regelmäßig den Wachhund rücksetzen, sonst
gibt es einen periodischen Warmstart.

Das ist kein Problem (2-3 Befehle reichen aus). Abfallprodukt des
Wachhundes ist der Einsatz als Display-Schoner.
Prinzip: Der Wachhund - Timer wird abgefragt. Hat er einen bestimmten
Wert erreicht, z.B. hier den Wert 80h (11bit-Prescaler und 8bit-Timer),
dann wird er auf 00 gesetzt und ein Speicherplatz von Null ab
runtergezählt. D.h. jedesmal, wenn der Wachhund rückgesetzt wird, wird
der Speicherplatz um eins abwärtsgezählt.
Hat der Speicherplatz (genannt z.B. LCSAVE) den Wert 00 erreicht
(abzufragen mit dem Befehl djnz), wird das Display ausgeschaltet (wenn
es nicht schon ausgeschaltet war).

Für das eigentliche Programm braucht man zwei Bits (Flags).
Das 1.Bit kennt den IST-Zustand des Displays.
Das 2.Bit kennt den WAR-Zustand des Displays.
Diese Flags brauche ich, damit, wenn ich eine Taste drücke, entweder
nur der Display-Inhalt zu lesen ist oder gleich eine Aktion zustande
kommt.
So etwa wie es auf dem Windows-PC läuft (laufen sollte).

Ich will das Programm hier nur umreissen; ich habe eines entwickelt,
das funktioniert und es ist einfach; es sind nur die zwei Flags nötig
sowie ein Register bzw. eine Speicherstelle sowie der Wachhund.

Ein Unterprogramm für den Wachhund/Display-Schoner aktivieren, falls
nötig.
Ein Unterprogramm für die Tasten-Antwort/Display-Schoner-Byte
rücksetzen/Display-Zustand festhalten/Display einschalten, falls
nötig.
Im Hauptprogramm kann das Flag "Display war
an/aus-geschaltet"abgefragt werden und entsprechend reagiert werden
(keine Reaktion bzw. Aktion Scrollen o.ä.).

Die LCD-Module kennen Befehle für Display-Aus und Display-An und man
kann sie ausschalten und einschalten. Dabei geht der Display-Inhalt
nicht verloren!
Das LCD-Display wird möglicherweise geschont, vor allem aber die
Batterien/Akkus, mit denen ein CMOS-8bit-System sparsam umgehen sollte.
"Da die externe Reset-Beschaltung -
bestehend aus einem Widerstand nach Masse und einem Kondensator nach
Betriebsspannung (+5Volt) schlecht funktioniert hat, obwohl ich einen
hochwertigen Kunststoff-Folien-Kondensator von 10 Mikro-Farad
eingesetzt hatte..."


Das hat nichts mit der Qualität des Elkos zu tun, sondern mit dem
Prinzip:

Bei kurzen Spannungseinbrüchen oder Unterspannung kann sich der
Kondensator nicht weit genug entladen, um ein sauberes Reset zu
machen.
Der interne Watchdog hilft da auch nicht weiter.


Deshalb haben richtige Reset-Schaltungen eine Spannungserkennung, die
bei jeder Unterschreitung für ein ordentliches Reset sorgt.
Ich nehme für professionelle Anwendungen immer den MAX813L.


Neuere AVRs haben das intern, nennt sich Brown-Out-Reset, den sollte
man grundsätzlich immer enablen.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.