Forum: Mikrocontroller und Digitale Elektronik AVRGCC LCD Tutorial: Werte vom Display in Variable übernehmen.


von iGast (Gast)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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

: Bearbeitet durch User
von Timmo H. (masterfx)


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.

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
Noch kein Account? Hier anmelden.