UHR und LCD Probleme (Nibble?)

Gast #99072
Lesenswert?
• ▲
▼
Hallo!
Habe eine Uhr mit einem ATmega8 gebaut .Die Uhrzeit wird auf ein 16x2
LCD übertragen.
Über verschiedene Taster/Schalter kann man die Uhr anhalten, und die
veschiedenen Minuten- und Stundenwerte einstellen( Sekunden werden
automatisch auf 0 gesetzt. Außerdem gibts einen Schalter zum Nullen der
UHR.(00:00:00)
Jetzt habe ich das Problem, wenn ich die Uhr anhalte und die Uhrzeit
einstelle und danach wieder laufen lasse fangen die Sekunden nicht bei
0 an zu laufen( manchmal schon:p ), sondern manchmal bei 3, 5 oder
etc..
Meine ertse idee war das in allen temporären Registern usw. noch werte
drinstehen, also hab ich alle (bei Betätigung des Schalters) auf 0
gesetzt.
Die Störungen haben sich zwar verringert sind aber immernoch nicht
weg!
Meine Idee ist jetzt ,dass wenn ich in dem Moment in dem ich den
Schalter drücke, die Übertragung der 2 Nibbles an das LCD (4 Bit-
modus) noch läuft und ich die Übertragung abbreche. Somit kommt bei der
nächsten Übertragung irgend ein Mist raus!
Kann das sein?
Wenn ja wie kann man das Nibble löschen ohne neu zu initialisieren?

MFG Mathias
Gast #99073
Lesenswert?
• ▲
▼
hallo mathias

also sowie ich das verstehe ist die routine mit dem schalter ein
interrupt, oder nicht?!? wenn das der fall wäre, dann kannst du ja
während den lcd-routinen interrupts abschalten (cli & sei), sodass die
übertraggung sicher beendent wird, und eine schalteraktivität vor oder
nach den lcd-routinen ausgewertet wird.

war eigentlich nur so eine idee...aber vielleicht hat's dir ja
geholfen.

gruss fab
Gast #99076
Lesenswert?
• ▲
▼
hallo mathias

ja dann ist ja alles wunderbar! aber wo hast du das delay eingebaut,
interessiert mich nur so aus reiner neugierde? hast du dann vorher die
schalter nicht entprellt gehabt?

gruss fabian
Gast #99078
Lesenswert?
• ▲
▼
@ Fabian
Die Taster und Schalter hab ich alle Hardware-mäßig entprellt!
wenn der stop schalter betätigt wird rufe ich das delay auf und danach
wird der Timerinterrupt unterbrochen!
@ Markus
Habe ziemlich viele Testläufe gemacht und es ist kein Fehler mehr
aufgetreten!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren