- LiFePO4 Speicher Test         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: LCD Text per Tasterdruck ändern

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210

    LCD Text per Tasterdruck ändern

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich experimentiere gerade mit meinen LCD Add-On rum und habe es auch schon geschafft Text anzuzeigen. Nun probiere ich den angezeigten Text per Tasterdruck zu verändern und zwar so, dass er auch auf dem LCD lesbar bleibt, wenn man den Taster loslässt.

    Mein Versuch:
    Eine LED an PinC.0 ein Taster an PinC.1. Die LED leuchtet durchgehend, das LCD zeig "LED ein" an und wenn man auf den Taster drückt geht die LED aus. Dementsprechend zeigt das LCD "LED aus" an. Lässt man den Taster nun los, geht die LED wieder an, doch sie soll aus bleiben.

    Ich habe es schon mit Debounce versucht, das funktioniert mit der LED aus soweit, doch wie kann ich da den LCD Text einbinden?! Oder gibt es dafür extra Befehle?!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    hä? was hast du gemacht? schick mal bitte deinen quellcode ^^

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Code:
    'Deklarationen
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Ddrc = &B00000010
    Portc = &B00000001
    
    'LCD
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
    Config Lcdbus = 4
    
    'Programm
    Do
    If Pinc.0 = 1 Then
       Portc.1 = 1
    
       Cls
       Locate 1 , 1
       Lcd "LED ein"
    
    Else
       Portc.1 = 0
    
       Cls
       Locate 1 , 1
       Lcd "LED aus"
    
    End If
    Loop
    End
    Der Code geht auch soweit. Nur ich möchte, dass es so wie mit Debounce ist. Taster einmal drücken: LED aus und LCD sagt "LED aus". Taster wieder drücken LED an und LCD sagt "LED an".
    Wenn ich das in Debounce umwandle, funktioniert das mit der LED auch wunderbar, nur die LCD Ausgabe stimmt nicht mehr. Am Anfang ist sie noch richtig, also "LED ein" und wechselt beim ersten Mal Taster drücken auch auf "LED aus" nur bleibt sie dann immer so und schaltet nicht mehr auf "LED ein" um, wenn die LED per Taster wieder eingeschaltet wird.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    so, dass sollte es sein, brauchst dann zwei debs:

    Code:
    'Deklarationen
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Ddrc = &B00000010
    Portc = &B00000001
    
    'LCD
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
    Config Lcdbus = 4
    
    'Programm
    Do
       Debounce Pinc.0 , 1 , Led_ein
       Debounce Pinc.0 , 0 , Led_aus
    Loop
    End
    
    'Subroutinen
    Led_ein:
       Portc.1 = 1
    
       Cls
       Locate 1 , 1
       Lcd "LED ein"
    Return
    
    Led_aus:
       Portc.1 = 0
    
       Cls
       Locate 1 , 1
       Lcd "LED aus"
    Return
    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.614
    Kleine Frage
    sind LCD Texte so einfach?
    Lcd "Text"
    ?

    wow ...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Naja ... Basecom halt ...

    Ich will allerdings nicht den Code sehen den der Compiler daraus erstellt ...

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    och das mit dem code hält sich noch stark in grenzen ^^
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Hm der Code funktioniert leider auch nur so, wie meiner. Die LED leuchtet und das LCD zeigt an "LED ein" und wenn man den Taster betätigt geht die LED so lange aus, wie man den Taster gedrückt hält. Lässt man ihn los, so geh die LED wieder an.

    Ich würde aber gerne haben, dass die LED aus bleibt und erst beim nächsten Tasterdruck wieder angeht und dazu eben das LCD die korrekten Daten ausgibt.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    achsooooo, na dann lass mich nochmal dran, iss gleich wieder fertig ^^
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    Code:
    'Deklarationen
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Ddrc = &B00000010
    Portc = &B00000001
    
    'LCD
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
    Config Lcdbus = 4
    Dim Led As Bit
    
    'Programm
    Do
       Debounce Pinc.0 , 1 , Flag
       If Led = 1 Then Gosub Led_ein
       If Led = 0 Then Gosub Led_aus
    Loop
    End
    
    'Subroutinen
    Led_ein:
       Portc.1 = 1
    
       Cls
       Locate 1 , 1
       Lcd "LED ein"
    Return
    
    Led_aus:
       Portc.1 = 0
    
       Cls
       Locate 1 , 1
       Lcd "LED aus"
    Return
    
    Flag:
       Toggle Led
    Return
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

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