Hallo,
ich versuche mich z. Z. mit dem Thema LCD Menue.
Hier im RN Wissen habe ich ein Besipiel gefunden http://www.rn-wissen.de/index.php/Ba...e_Machine_Menu .
Das Beispiel (Version2) habe ich auf dem Arduino Uno mit DFRobot LCD Sheld (http://robosavvy.com/store/product_i...oducts_id/1862)
zum laufen gebracht. LCD funktioniert und die Tasten am Analogeingang funktionieren auch.
Genau so wie das blättern im Menue.

Nur mit dem Verständnis der Datentabelle und deren abfrage hapert es noch.
Wobei der Inhalt der Tabelle an sich verstanden ist.
hier mal ein Auszug wo ich nicht weiter komme.

Code:
'********* State routines ***************************************************
'---------------------------------------------------------------
'Subroutine: Change_state
'Call from:  main loop
'Purpose:    Status der State Machine feststellen und ggf. Wechseln
'Result:     Pointer auf State / Variable State_renew
'---------------------------------------------------------------
Change_state:
    lds R8, {State}
    lds R9, {State + 1}
    For I = 1 To Key_buttons
      Read W
      If Key = Keycode(i) Then
           If W <> Loadlabel(null) Then
              State_renew = 1
              Key = Key_null                                'reset key status after get a new state of state machine (prevent influence on GOSUBs)
              State = W
           End If
      End If
    Next I
    Read State_gosub                                        'Adresse des akt. Unterprogramms einlesen
    Read Lcd_textbuffer                                     'read LCD text
Return

'---------------------------------------------------------------
'Subroutine: Change_state_by_sub
'Call from:  subroutine
'Purpose:    change state of state machine by a subbroutine
'---------------------------------------------------------------
Change_state_by_sub:
   State_renew = 1
   Gosub Change_state
Return

'---------------------------------------------------------------
'DATA:       State Machine
'Result:     Pointers auf States , Unterprogramme
'            Menütexte
'Format:     1. Zeile: für jede Taste genau eine Verzeigung ADR2 (see Key_buttons=xx)
'            2. Zeile: Sprunglabel als ADR2 für ein ggf. anzuspringendes Unterprogramm
'            3. Zeile: Displaytext des akt. Status als DATA Feld
'Hinweis:    wenn nichts passieren soll wird das Label NULL eingetragen
'---------------------------------------------------------------

Null:
         'Null is a dummy flag for State and Gosub -> do nothing
         Return

S10:
         Adr2 Null : Adr2 S20 : Adr2 Null : Adr2 S11        'Key_plus|Key_minus|Key_prev|Key_next
         Adr2 Null                                          'Subroutine for current State
         Data "1 Butterfly Bascom"                          'Menue Display Text
S11:
             Adr2 Null : Adr2 Null : Adr2 S10 : Adr2 Null   'Key_plus|Key_minus|Key_prev|Key_next
             Adr2 Null
             Data "11 Rev 2"
Zu einem ist es die Tabelle an sich.
Die sieht mir aus wie normale Labes (S10: S20: ....) die ich auch bei Gosub z.b. benutze.
Woher weiß Bascom das dies eine Datentabelle ist?
Die Zeile
Adr2 Null : Adr2 S20 : Adr2 Null : Adr2 S11
sind die Sprungmarken für die Einzelnen Tasten zum anzeigen des nächsten Menuepunktes.
Muss ich der Tabelle irgendwo sagen wie viel Einträge pro Datensatz gemacht werden?

Und das auslesen will sich mir auch noch nicht so recht erschließen.
Mit Read W wird die Tabelle gelesen und mit der For Next Schleife,
werden die Daten pro Datensatz z. B. Adr2 Null : Adr2 Null : Adr2 S10 : Adr2 Null
ausgelesen aber wie wird dann die zweite und dritte Zeile ausgelesen ?
Also die Zeilen
Adr2 Null
Data "11 Rev 2

Die Bascom Hilfe zu Read und Loadlabe war auch nicht so aufschlussreich.

Vielleicht kann mir einer hier im Forum die Funktion bzw. das Arbeiten mit
Tabellen erläutern.

Gruß Ingo