- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Universal LCD Menue

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    48
    Beiträge
    408

    Universal LCD Menue

    Anzeige

    E-Bike
    Hallo ...

    für alle die gern ein LCD Menue in Ihren Code einbauen würden und nicht wissen wie oder zu faul sind hab ich ein universelles Menue geschrieben
    das kinderleicht angepasst werden kann,da das eigentliche Menue aus einem Datensatz besteht in dem man einfach die Texte und die Sprungmarken anpasst.
    Funktionieren tut das ganze wie n altes Handy Menu
    Taste hoch blättert in der aktuellen ebene einen eintrag hoch
    Taste runter einen runter,Taste rechts springt in das jeweilige Untermenue und Taste links wieder zurueck in die höhere Ebene

    Es können pro Menue ebene maximal 9 Einträge verwendet werden
    und maximal 255 Menue-Punkte in allen Ebenen
    weiterhin sind maximal 99 Ereignisse auf die Menuepunkte möglich
    (kann noch erhöht werden)
    zum Testen kann der folgende code einfach im Simulator getestet werden

    die Tastenbelegung ist:
    Taste hoch pinc.1
    runter pind.1
    links pind.2
    rechts pind.0

    das entspricht den Pfeilen auf der Tastatur

    weiter Hinweise zum anpassen und infos stehen im code..

    alle profis unter euch können gern tips zum optimieren geben,da dies auch
    bestimmt möglich ist und mir mal erklären warum manche pins von port A
    wärend der ausführung des codes ihren level ändern

    ansonsten viel spaß gruß Daniel

    achso der code ist fürn 4 zeilen 20 zeichen menue
    wer weniger zeilen hat muß die locate und lcd anweisungen ändern



    Code:
    $regfile = "m16def.dat"
    
    Dim Menuepunkt As Byte
    Menuepunkt = 2
    Dim Menuevor As Byte
    Menuevor = 2
    Dim Menuezurueck As Byte
    Menuezurueck = 2
    Dim Menuehoch As Byte
    Menuehoch = 2
    Dim Menuerunter As Byte
    Menuerunter = 2
    Dim Menuecase As Byte
    Dim Taste As Byte
    Dim Schonbearbeitet As Bit
    Declare Sub Menueupdate(submenupunkt As Byte , Submenucase As Byte , Submenuvor As Byte , Submenuzurueck As Byte , Submenuhoch As Byte , Submenurunter As Byte )
    Config Portc = Input
    Config Portd = Input
    
    Tastehoch Alias Pinc.1                                      'hier definiert ihr die tastenpins
    Tasterunter Alias Pind.1
    Tastelinks Alias Pind.2
    Tasterechts Alias Pind.0
    Schonbearbeitet = 0
    Taste = 0
    
    Startzeile:
    If Tastehoch = 1 Then
    Taste = 1
    Goto Testen
    End If
    If Tasterunter = 1 Then
    Taste = 2
    Goto Testen
    End If
    If Tastelinks = 1 Then
    Taste = 3
    Goto Testen
    End If
    If Tasterechts = 1 Then
    Taste = 4
    Goto Testen
    End If
    Taste = 0
    Schonbearbeitet = 0
    Goto Startzeile
    
    
    'hier steht der weitere code
    
    
    
    
    
    
    
    
    Testen:
    If Schonbearbeitet = 0 Then Goto Neumenu
    Goto Startzeile
    
    Neumenu:
    Schonbearbeitet = 1
    Select Case Taste
    Case 1 : Menuepunkt = Menuehoch                             'je nach taste wird der neue menue-punkt gesetzt
    Case 2 : Menuepunkt = Menuerunter
    Case 3 : Menuepunkt = Menuezurueck
    Case 4 : Goto Caseauswertung
    End Select
    
    Menueupdaten:
    Call Menueupdate(menuepunkt , Menuecase , Menuevor , Menuezurueck , Menuehoch , Menuerunter)       'menue wird erneuert
    Menueende:
    
    Print "menu runter " ; Menuerunter
    Print "menue hoch " ; Menuehoch
    Print "menue vor " ; Menuevor
    Print "menue zurück " ; Menuezurueck
    Print "menuecase" ; Menuecase
    Goto Startzeile
    
    Caseauswertung:
    If Menuecase = 0 Then
       Menuepunkt = Menuevor
       Goto Menueupdaten
    End If
    Cls
    Menuepunkt = 2
    Menuehoch = 2
    Menuerunter = 2
    Menuevor = 2
    Menuezurueck = 2
    'Select Case Menuecase                                       'hier kann die auswertung der ereignisse erfolgen
    'Case 1 :goto ..                                             'vor rückkehr zur tasten abfrage muß menuecase wieder auf 0
    'case 2 :goto ...                                            'gesetzt werden
    'case 3 :goto ...
    'End Select
    
    Locate 2 , 1                                                'dies dient nur zum test
    Lcd "Ereigniss  " ; Menuecase                               '      ""
    Menuecase = 0
    Goto Menueende
    
    Sub Menueupdate(submenupunkt As Byte , Submenucase As Byte , Submenuvor As Byte , Submenuzurueck As Byte , Submenuhoch As Byte , Submenurunter As Byte )       'sub zum erneuern des menues
    Cls
    Local Beendet As Byte
    Local Zahler As Byte
    Local Kurzstring As String * 4
    Local Langstring As String * 20
    Local Zeile1 As Byte
    
    Menurunter:
    Submenupunkt = Submenupunkt + 2                             'text und menuepunkt für taste runter-blättern wird gesucht und ausgegeben
    Kurzstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(kurzstring , 1)
    If Kurzstring = "#" Then
        Locate 4 , 1
        Lcd "********************"
        Submenupunkt = Submenupunkt - 2
        Submenurunter = Submenupunkt
    Else
        Submenurunter = Submenupunkt
        Langstring = Lookupstr(submenupunkt , Menue)
        Locate 4 , 1
        Lcd Langstring
        Submenupunkt = Submenupunkt - 2
    End If
    
    Aktuell:                                                    'text für aktuellen menuepunkt wird ausgegeben
    Langstring = Lookupstr(submenupunkt , Menue)
    Locate 3 , 1
    Lcd Langstring
    
    Menuevor:
    Submenupunkt = Submenupunkt + 1                             'text und menuepunkt für taste vor (rechts) wird gesucht und ausgegeben
    Kurzstring = Lookupstr(submenupunkt , Menue)
    Langstring = Left(kurzstring , 1)
    
    If Langstring = "!" Then
      Langstring = Right(kurzstring , 2)
      Submenucase = Val(langstring)
      Submenupunkt = Submenupunkt - 1
      Goto Menuehoch
      End If
    Submenucase = 0
    Kurzstring = "#" + Kurzstring
    Zahler = 0
    Beendet = 0
    Do
    Incr Zahler
    Langstring = Lookupstr(zahler , Menue)
    If Kurzstring = Langstring Then Beendet = 1
    Loop Until Beendet = 1
    Zahler = Zahler + 2
    Submenuvor = Zahler
    Submenupunkt = Submenupunkt - 1
    
    Menuehoch:                                                  'text und menuepunkt für taste hoch-blättern wird gesucht und ausgegeben
    Submenupunkt = Submenupunkt - 2
    Langstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(langstring , 1)
    If Kurzstring = "#" Then
         Locate 2 , 1
         Lcd "********************"
         Submenupunkt = Submenupunkt + 2
         Submenuhoch = Submenupunkt
    Else
         Submenuhoch = Submenupunkt
         Langstring = Lookupstr(submenupunkt , Menue)
         Locate 2 , 1
         Lcd Langstring
         Submenupunkt = Submenupunkt + 2
    End If
    
    Menuezuruck:
    Beendet = 0                                                 'text und menuepunkt für taste zurueck (links) wird gesucht und ausgegeben
    Zahler = 0
    Do
    Decr Submenupunkt
    Langstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(langstring , 1)
    If Kurzstring = "#" Then Beendet = 1
    Loop Until Beendet = 1
    If Submenupunkt = 0 Then
    Zeile1 = 1
    Else
    Zeile1 = 0
    End If
    Submenupunkt = Submenupunkt + 1
    Langstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(langstring , 2)
    Kurzstring = "#" + Kurzstring
    Beendet = 0
    Zahler = 0
    Do
    Langstring = Lookupstr(zahler , Menue)
    If Langstring = Kurzstring Then
    Beendet = 1
    Else
    Incr Zahler
    End If
    Loop Until Beendet = 1
    Kurzstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Right(kurzstring , 1)
    Submenupunkt = Val(kurzstring)
    Submenupunkt = Submenupunkt * 2
    Submenuzurueck = Zahler + Submenupunkt
    If Submenuzurueck = 2 Then
        If Zeile1 = 1 Then
        Locate 1 , 5
        Lcd "Hauptmenue"
        Zeile1 = 0
        Else
        Langstring = Lookupstr(submenuzurueck , Menue)
        Locate 1 , 5
        Lcd Langstring
        End If
    Else
        Langstring = Lookupstr(submenuzurueck , Menue)
        Locate 1 , 5
        Lcd Langstring
    End If
    
    
    End Sub
    
    ' hinter der #  steht die menueebene dahinter steht die rücksprungadresse für diese menueebene
    ' zB wird aus einem eintrag der ebene #04 (zB Abstand) in die ebene #3 eintrag 1 gesprungen (031) in diesem fall nach eingänge
    ' und von dort gehts zurück in ebene 1 eintrag 2 (012) das wäre dann "Tests"
    'nach der rücksprungadresse folgt der erste menuepunt (max 20 Zeichen)und danach dessen vorprung adresse
    'zB hinter "Einstellungen" steht 07 also verzweigt das menue von dort in die unter-ebene 7
    'falls aus einem Menuepunkt nicht weiter in ein Untermenue gesprungen werden soll sondern ein bestimmdes Ereigniss stattfinden soll
    'dann kommt als vor-sprung-adresse (die zahl hinter dem eintrag) ein ! und eine Zahl von 1-99 diese Zahl wird dann in der variable menuecase zurueckgegeben
    'zB wenn man im Menuepunkt "Akku Laden" die menue-vor taste drückt wird der wert 02 zurueckgegeben diese können dann ausgewertet werden
    
    Menue:
    Data "#01" , "011" , "Modus" , "02" , "Test" , "03" , "Einstellungen" , "07" , "Akku laden" , "!02"
    Data "#02" , "011" , "Autonom" , "!03" , "Erkunden" , "!04" , "Manuell RC" , "!05" , "Manuell-Stick" , "!06"
    Data "#03" , "012" , "Eingaenge" , "04" , "Ausgaenge" , "05"
    Data "#04" , "031" , "Kollision" , "!07" , "Abstand" , "!08" , "Richtung" , "!09" , "Spannung" , "!10"
    Data "#05" , "032" , "Antrieb" , "!11" , "Servos" , "06" , "Walze" , "!12" , "Lenkung" , "!13",
    Data "#06" , "052" , "Servo links" , "!14" , "Servo rechts" , "!15"
    Data "#07" , "013" , "Uhrzeit" , "08" , "Offset" , "!16"
    Data "#08" , "071" , "Datum" , "!17" , "Uhrzeit" , "!18" , "Jahr" , "!19" , "hallo" , "!20"
    Data "#EO"                                                  'muß am ende stehen

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.06.2005
    Alter
    35
    Beiträge
    364
    Sieht gut aus, sieht aber auh nach viel Arbeit aus!!! Respekt =D>
    Wie wärs wenn du das als Artikel ins Wiki schreibst?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    48
    Beiträge
    408
    naja war schon viel arbeit aber es war mir wichtig das ich mir die arbeit nur einmal mache und ich mein menue dann beliebig ändern erweitern oder abspecken kann

    Da ich noch relativ neu hier bin warte ich auch erstmal auf feedback ob das prog auch nach diversen änderungen fehlerfrei läuft oder ob irgendwo noch was zu ändern ist

    ich hab zwar diverse menueebenen dazugeschrieben und verzweigungen getestet da lief alles aber man weiß ja nie

    Gruß Daniel

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    habe es mal kurz im Bascom-Simulator angetestet:
    Code läuft nicht, sondern hängt sich schnell auf, weil Submenupunkt "negativ" wird.
    Irgendie schießt der Code durch alle glatt Sprungmarken durch, als wenn ein paar Rücksprünge fehlen würden Menurunter/Aktuell/Menuevor/Menuehoch -> error

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    48
    Beiträge
    408
    ich weiß zwar nicht worans ligt aber dieser hier läuft bei mir

    *.bas ist im anhang
    Code:
    $regfile = "m16def.dat"
    
    Dim Menuepunkt As Byte
    Menuepunkt = 2
    Dim Menuevor As Byte
    Menuevor = 2
    Dim Menuezurueck As Byte
    Menuezurueck = 2
    Dim Menuehoch As Byte
    Menuehoch = 2
    Dim Menuerunter As Byte
    Menuerunter = 2
    Dim Menuecase As Byte
    Dim Taste As Byte
    Dim Schonbearbeitet As Bit
    Declare Sub Menueupdate(submenupunkt As Byte , Submenucase As Byte , Submenuvor As Byte , Submenuzurueck As Byte , Submenuhoch As Byte , Submenurunter As Byte )
    Config Portc = Input
    Config Portd = Input
    
    Tastehoch Alias Pinc.1                                      'hier definiert ihr die tastenpins
    Tasterunter Alias Pind.1
    Tastelinks Alias Pind.2
    Tasterechts Alias Pind.0
    Schonbearbeitet = 0
    Taste = 0
    
    Startzeile:
    If Tastehoch = 1 Then
    Taste = 1
    Goto Testen
    End If
    If Tasterunter = 1 Then
    Taste = 2
    Goto Testen
    End If
    If Tastelinks = 1 Then
    Taste = 3
    Goto Testen
    End If
    If Tasterechts = 1 Then
    Taste = 4
    Goto Testen
    End If
    Taste = 0
    Schonbearbeitet = 0
    Goto Startzeile
    
    
    'hier steht der weitere code
    
    
    
    
    
    
    
    
    Testen:
    If Schonbearbeitet = 0 Then Goto Neumenu
    Goto Startzeile
    
    Neumenu:
    Schonbearbeitet = 1
    Select Case Taste
    Case 1 : Menuepunkt = Menuehoch                             'je nach taste wird der neue menue-punkt gesetzt
    Case 2 : Menuepunkt = Menuerunter
    Case 3 : Menuepunkt = Menuezurueck
    Case 4 : Goto Caseauswertung
    End Select
    
    Menueupdaten:
    Call Menueupdate(menuepunkt , Menuecase , Menuevor , Menuezurueck , Menuehoch , Menuerunter)       'menue wird erneuert
    Menueende:
    
    Print "menu runter " ; Menuerunter
    Print "menue hoch " ; Menuehoch
    Print "menue vor " ; Menuevor
    Print "menue zurück " ; Menuezurueck
    Print "menuecase" ; Menuecase
    Goto Startzeile
    
    Caseauswertung:
    If Menuecase = 0 Then
       Menuepunkt = Menuevor
       Goto Menueupdaten
    End If
    Cls
    Menuepunkt = 2
    Menuehoch = 2
    Menuerunter = 2
    Menuevor = 2
    Menuezurueck = 2
    'Select Case Menuecase                                       'hier kann die auswertung der ereignisse erfolgen
    'Case 1 :goto ..                                             'vor rückkehr zur tasten abfrage muß menuecase wieder auf 0
    'case 2 :goto ...                                            'gesetzt werden
    'case 3 :goto ...
    'End Select
    
    Locate 2 , 1                                                'dies dient nur zum test
    Lcd "Ereigniss  " ; Menuecase                               '      ""
    Menuecase = 0
    Goto Menueende
    
    Sub Menueupdate(submenupunkt As Byte , Submenucase As Byte , Submenuvor As Byte , Submenuzurueck As Byte , Submenuhoch As Byte , Submenurunter As Byte )       'sub zum erneuern des menues
    Cls
    Local Beendet As Byte
    Local Zahler As Byte
    Local Kurzstring As String * 4
    Local Langstring As String * 20
    Local Zeile1 As Byte
    
    Menurunter:
    Submenupunkt = Submenupunkt + 2                             'text und menuepunkt für taste runter-blättern wird gesucht und ausgegeben
    Kurzstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(kurzstring , 1)
    If Kurzstring = "#" Then
        Locate 4 , 1
        Lcd "********************"
        Submenupunkt = Submenupunkt - 2
        Submenurunter = Submenupunkt
    Else
        Submenurunter = Submenupunkt
        Langstring = Lookupstr(submenupunkt , Menue)
        Locate 4 , 1
        Lcd Langstring
        Submenupunkt = Submenupunkt - 2
    End If
    
    Aktuell:                                                    'text für aktuellen menuepunkt wird ausgegeben
    Langstring = Lookupstr(submenupunkt , Menue)
    Locate 3 , 1
    Lcd Langstring
    
    Menuevor:
    Submenupunkt = Submenupunkt + 1                             'text und menuepunkt für taste vor (rechts) wird gesucht und ausgegeben
    Kurzstring = Lookupstr(submenupunkt , Menue)
    Langstring = Left(kurzstring , 1)
    
    If Langstring = "!" Then
      Langstring = Right(kurzstring , 2)
      Submenucase = Val(langstring)
      Submenupunkt = Submenupunkt - 1
      Goto Menuehoch
      End If
    Submenucase = 0
    Kurzstring = "#" + Kurzstring
    Zahler = 0
    Beendet = 0
    Do
    Incr Zahler
    Langstring = Lookupstr(zahler , Menue)
    If Kurzstring = Langstring Then Beendet = 1
    Loop Until Beendet = 1
    Zahler = Zahler + 2
    Submenuvor = Zahler
    Submenupunkt = Submenupunkt - 1
    
    Menuehoch:                                                  'text und menuepunkt für taste hoch-blättern wird gesucht und ausgegeben
    Submenupunkt = Submenupunkt - 2
    Langstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(langstring , 1)
    If Kurzstring = "#" Then
         Locate 2 , 1
         Lcd "********************"
         Submenupunkt = Submenupunkt + 2
         Submenuhoch = Submenupunkt
    Else
         Submenuhoch = Submenupunkt
         Langstring = Lookupstr(submenupunkt , Menue)
         Locate 2 , 1
         Lcd Langstring
         Submenupunkt = Submenupunkt + 2
    End If
    
    Menuezuruck:
    Beendet = 0                                                 'text und menuepunkt für taste zurueck (links) wird gesucht und ausgegeben
    Zahler = 0
    Do
    Decr Submenupunkt
    Langstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(langstring , 1)
    If Kurzstring = "#" Then Beendet = 1
    Loop Until Beendet = 1
    If Submenupunkt = 0 Then
    Zeile1 = 1
    Else
    Zeile1 = 0
    End If
    Submenupunkt = Submenupunkt + 1
    Langstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Left(langstring , 2)
    Kurzstring = "#" + Kurzstring
    Beendet = 0
    Zahler = 0
    Do
    Langstring = Lookupstr(zahler , Menue)
    If Langstring = Kurzstring Then
    Beendet = 1
    Else
    Incr Zahler
    End If
    Loop Until Beendet = 1
    Kurzstring = Lookupstr(submenupunkt , Menue)
    Kurzstring = Right(kurzstring , 1)
    Submenupunkt = Val(kurzstring)
    Submenupunkt = Submenupunkt * 2
    Submenuzurueck = Zahler + Submenupunkt
    If Submenuzurueck = 2 Then
        If Zeile1 = 1 Then
        Locate 1 , 5
        Lcd "Hauptmenue"
        Zeile1 = 0
        Else
        Langstring = Lookupstr(submenuzurueck , Menue)
        Locate 1 , 5
        Lcd Langstring
        End If
    Else
        Langstring = Lookupstr(submenuzurueck , Menue)
        Locate 1 , 5
        Lcd Langstring
    End If
    
    
    End Sub
    
    ' hinter der #  steht die menueebene dahinter steht die rücksprungadresse für diese menueebene
    ' zB wird aus einem eintrag der ebene #04 (zB Abstand) in die ebene #3 eintrag 1 gesprungen (031) in diesem fall nach eingänge
    ' und von dort gehts zurück in ebene 1 eintrag 2 (012) das wäre dann "Tests"
    'nach der rücksprungadresse folgt der erste menuepunt (max 20 Zeichen)und danach dessen vorprung adresse
    'zB hinter "Einstellungen" steht 07 also verzweigt das menue von dort in die unter-ebene 7
    'falls aus einem Menuepunkt nicht weiter in ein Untermenue gesprungen werden soll sondern ein bestimmdes Ereigniss stattfinden soll
    'dann kommt als vor-sprung-adresse (die zahl hinter dem eintrag) ein ! und eine Zahl von 1-99 diese Zahl wird dann in der variable menuecase zurueckgegeben
    'zB wenn man im Menuepunkt "Akku Laden" die menue-vor taste drückt wird der wert 02 zurueckgegeben diese können dann ausgewertet werden
    'das menue kann beliebig erweitert oder verändert werden.es ist nur das format einzuhalten.
    
    Menue:
    Data "#01" , "011" , "Modus" , "02" , "Test" , "03" , "Einstellungen" , "07" , "Akku laden" , "!02"
    Data "#02" , "011" , "Autonom" , "!03" , "Erkunden" , "!04" , "Manuell RC" , "!05" , "Manuell-Stick" , "!06"
    Data "#03" , "012" , "Eingaenge" , "04" , "Ausgaenge" , "05"
    Data "#04" , "031" , "Kollision" , "!07" , "Abstand" , "!08" , "Richtung" , "!09" , "Spannung" , "!10"
    Data "#05" , "032" , "Antrieb" , "!11" , "Servos" , "06" , "Walze" , "!12" , "Lenkung" , "!13",
    Data "#06" , "052" , "Servo links" , "!14" , "Servo rechts" , "!15"
    Data "#07" , "013" , "Uhrzeit" , "08" , "Offset" , "!16"
    Data "#08" , "071" , "Datum" , "!17" , "Uhrzeit" , "!18" , "Jahr" , "!19" , "hallo" , "!20"
    Data "#EO"                                                  'muß am ende stehen

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    ich habe den Code noch einmal in eine andere Bascom-Installation herüberkopiert. Der ERROR ist der gleiche:
    Bascom 1.11.8.1
    Code:
    131 Aktuell:    'text für aktuellen menuepunkt wird ausgegeben
    132 Langstring = Lookupstr(submenupunkt , Menue)
    an diesem Punkt wird bei Aktivierung Portc.1=1 oder Portd.1=1 die Variable submenupunkt=&HFD

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    48
    Beiträge
    408
    tja ich hab die selbe Version bei mir läufts, auch aufm mega

    die lokale variable submenupunkt wird ja mit aufruf der sub menueupdate auf den wert vom menuepunkt gesetz und dieser ist beim starten des progs auf 2
    also mußt du mal das prog verfolgen an welcher stelle der mist reinkommt
    kann sein das du HW und SW Stack erhöhen mußt damit alles stabil bleibt

    bei mir ist
    hwstack=32
    softstack=40
    framesize=32

    (bei option - compile -chip einstellen)

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    Alles klar, das war es. Jetzt läuft es im Simulator.
    Habe den Code noch ergänzt um:
    Code:
    $hwstack = 32
    $swstack = 40
    $framesize = 32
    
    Config Lcdmode = Port
    Config Lcdbus = 4                                           '4 bit mode
    Config Lcd = 20 * 4
    Initlcd
    Gute Arbeit

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    04.04.2009
    Ort
    Sangerhausen/OT Grillenberg
    Alter
    59
    Beiträge
    53
    Hallo Daniel,

    prima Menü. Super Arbeit. Kann man das auch in ein Touch-Display verwenden?
    zB.: dieses Set -
    http://eckstein-shop.de/Mega-2560-mit-32-Touchsreen-Set

    Gruß Andreas

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo molleonair,

    dein Code „Universal LCD Menue“ ist schon prima, aber warum die 4Taster und Pin Verschwendung.
    Dies finde ich nicht ganz so toll. In meinen bescheiden Code mache ich es im Programmablauf automatisch. Hier können auch bis zu 255 Menüanzeigen voreingestellt werden. Je nach „Unterprogramm“ wird auch die passende Anzeige generiert.


    Mit freundlichen Grüßen

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test