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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.