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