PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Menuaufbau mit Atmega8



Lazareth
01.07.2007, 21:06
Hallo, ich mal wieder!!!

Baue gerade ein "Batterieladegerät", welches bei einer bestimmten Spannung aus und wieder einschaltet, also ein etwas Komplizierter Schmitt-Trigger. Die Regelung funktioniert soweit, die gemessene Spannung wird auf dem angeschlossenem LCD angezeigt und geschaltet wird auch.
Um das ganze nun etwas eigenständiger zu machen und um auf die ständige umprogrammierung der µC zu verzichten, würde ich gerne ein kleines Menu programmieren, mit dem die Ein- und Ausschaltschwelle direkt über 5 Taster an der Schaltung verändert werden kann.

nur leider hänge ich bei der Aufgabe etwas fest, google spuckt auch nichts passendes aus. Hat mir jemand vielleicht ein paar hilfreiche tipps und oder ne HP, auf der man mal nachlesen kann, wie sowas programmiert wird?!

sollte möglichst in assembler sein, finde die hochsprachen nicht so den knaller und ich habs gerne umständlich und kompliziert =P~

danke schonmal im voraus.

uwegw
01.07.2007, 22:50
Welches Bedienkonzept möchtest du denn umsetzen?
-dynamische Tastenbeschriftung im LCD einblenden oder feste (welche?) Belegung?
-verschachtelte Menüebenen oder alles auf einer Hauptebene?
-Einstellung nur eines Parameters pro Bildschirm, oder mehrere?
-LCD-Größe?

Ich hab bei meinem Bot dieses System umgesetzt:
Bedienung über einen Drehencoder mit Tastfunktion. Die Drehstellung wird über einen Interrupt dauernd aktualisiert. Zu Beginn warte ich in einer Schleife, bis die Taste gedrückt wird. Dabei prüfe ich die Drehstellung. Jeder Wert ist einem Menüpunkt zugeordnet, der dann entsprechend eingeblendet wird. Wenn der Taster dann gedrückt wurde, wird die zugehörige Menüseite ausgewählt. Dort kann man mit dem Encoder den Parameter einstellen, dann drücken, und der Wert wird im EEPROM abgelegt und man kehrt ins Hauptmenü zurück. Das ließe sich auch mit drei Tastern nutzen.

Assemblertechnisch wären Tabellen eine gute Wahl. Du gibts per Tastenauswahl den Index an, und suchst in einer Tabelle die zugehörigen Displaydaten und in einer anderen Tabelle die Sprungadressen für das Aufrufen der Menüpunkte.

Lazareth
02.07.2007, 09:48
so hallo!

ja danke, das ist doch mal ein guter ansatz.

ich habe mir das so gedacht, das ich ein hauptmenu habe, in dem ich die einstellungssache auswähle, mit einem tastendruck in einen neuen bildschirm mit den parametern komme, dort auswähle und dann entsprechend speichern kann. evtl. - was ich aber nicht glaueb, da es so viel gar nicht werden wird - noch ein bisschen verschachteln.

mit der programmierung von dem eeprom/flash und co hab ich noch so meine probleme, bin aber gerade dabei mich da hineinzuarbeiten.

hast du sämtliche konstanten und wörter/sätze einzeln!!! auf dem flash hinterlegt?!

wenn ja, hast du mir mal einen codeschnipsel wie das aussehen könnte?!

gruß

EDIT: 5 taster: 2 rechts/links(menuauswahl), 2 hoch/runter (einstellung der Parameter) und 1 taste zum bestätigen, also "enter" (speichern)

uwegw
02.07.2007, 11:00
Ich hab in C programmiert. Daher ist das Programm auch nicht mit Tabellen aufgebaut, sondern mit case-Anweisungen.

Lazareth
02.07.2007, 11:13
ok danke dir, dann werde ich mich da selber durchkämpfen müssen...