AVRGCC LCD Tutorial: Werte vom Display in Variable übernehmen.

Gast #3346225
Lesenswert?

Hallo,

erst mal ein großes Lob für das tolle AVR GCC Tutorial.
Jedoch habe ich eine Idee und kann sie aber nicht umsetzen.

Ich möchte über ein Display eine Zahl einstellen und diese dann in eine 
Variable schreiben.

Es scheitert bis jetzt nach meinen Überlegungen an zwei Stellen.
1. Wenn ich den Curser auf eine Position im Display gesetzt habe, und 5 
Stellen (z.B. 76879) in die Variable übernehmen möchte, wie kann ich 
dann die Zahl einstellen? Hochzählen oder jede Ziffer mit 0-9 
einstellen? Drei Taster sind vorhanden für Menüsteuerung
2. Wie gelangen diese 5 stellige Zahl in eine Variable?

Vielleicht hat schon jemand ein ähnliches Problem gelöst oder kann mir 
einfach so weiterhelfen. Ein Beispiel Code wäre da vielleicht sehr 
hilfreich.

Danke im voraus schon für alle sachlichen Beiträge.
(Firma: matzetronics) #3346235
Lesenswert?

Ich löse das im Umrichter Projekt über ein switch-case Konstrukt, der 
Cursor wird unter den Parameter mit einem Button gesetzt, über die 
beiden anderen Buttons ( + und -) wird dann direkt die Variable 
geändert. Die zentrale Ausgaberoutine frischt dann das LCD auf.

Allerdings benutze ich Peter Fleurys LCD Routinen, aber das Prinzip ist 
das gleiche.
http://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR
#3346248
Lesenswert?

Also ich würde die zu veränderte Zahl immer im RAM behalten. Das Display 
dient nur zur "spiegelung" der Zahl.

Angenommen du hast eben diese 3 Taster. Dann hast du eigentlich nur 
"Hoch","Runter", "OK".
Angenommen durch einen langen Tastendruck gehst du in den Modus die Zahl 
in editieren. Dann würde man z.B. im ersten schritt die Cursor-Position 
setzen (hoch/links, runter/rechts). Dann setzt du default-mäßig den 
Curser auf die letzte stelle. Mit links/rechts wählt man dann die 
Cursor-Position aus. Je nach ausgewählter Cursor-Position änderst du 
eine "Inkremental-Variable" auf 1,10,100,1000 je nach Cursor-Position.
Wenn der Benutzer die Cursor-Position bestätigt, kann er mit hoch/runter 
die Stelle verändern. Das erreichst du dann dadurch, dass du zu deiner 
Variable "76879" jeweils die ermittelte "Inkremental-Variable" abziehst 
bzw. addierst. Mit "OK" wird der edit-Modus dann wieder verlassen.

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