Bei Debounce fehlt die Sub-Erklärung und das Display muss nur einmal überhaupt gecleart werden, sonst flackert es. Wird ja doch an die gleiche Stelle geschrieben. Sonst läuft es.
Debounce Pinc.0 , 1 , Flag , Sub
Wenn ich den Code so benutze, kommen auf meinem LCD komische Zeichen und die LED geht weder an noch aus.
Bei Debounce fehlt die Sub-Erklärung und das Display muss nur einmal überhaupt gecleart werden, sonst flackert es. Wird ja doch an die gleiche Stelle geschrieben. Sonst läuft es.
Debounce Pinc.0 , 1 , Flag , Sub
Ja, so geht es. Dankeschön![]()
Noch eine kleine Frage: ist es möglich, eine Zeile des LCDs zu invertieren? Also die Segmente zu schwärzen und die Zeichen grün unterlegen? Wollte ein Menü machen, in dem man mehrere Punkte auswählen kann und das Invertrieren wäre praktisch um den momentan ausgewählten Command hervorzuheben.
nope, das geht nicht, das musste mit nem > oder so machen oder () oder so
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Oki, dann nehm ich einfach nen Pfeil![]()
was du natürlich machen kannst fällt mir grad ein, du kannst zumindest nen char selber definen und da dann nen pfeil basteln oder sogar aus mehreren ne animation oder sowas ^^
ansonsten kauf dir nen glcd, die können alles, und sind auch gar nich mehr so teuer ^^
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Hm ich habe eher an ein 4*20 Zeichen Display gedacht, da mir die vier Zeilen ausreichen (da ich nur 3 Kommandos für die Steuerung habe).
Aber noch eine Frage: wie könnte man es realisieren, dass der Pfeil zwischen den drei Auswahlmöglichkeiten hin und her switcht?
Ich würde gerne die drei Kommandos auf dem LCD haben, die dann über einen Taster nacheinander angewählt werden können. Geht das auch noch mit Debounce oder muss ich da einen anderen Befehl für verwenden?
So habe ich mir das vorgestellt:
-> Kommando 1
Kommando 2
Kommando 3
Kommando 1
-> Kommando 2
Kommando 3
Kommando 1
Kommando 2
-> Kommando 3
geht genauso mit debounce, musste immer hochzählen, wenner taster gedrückt wurde, und wenn die zahl größer als 3 wird, dann auf 1 zurücksetzen.
und dann fragste im programm die zahl ab, wo der pfeil nur gezeichnet werden soll, und zeigstn dort an.
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Habe nun etwas rumgespielt und auch das Programm zu meiner Zufriedenheit hinbekommen. In meinem LCD flackert es leider ein bisschen (nicht schlimm, nur ein Schönheitsfehler).
Da ich aber noch Anfänger in Bascom bin und dies eigentlich mein erstes echts Projekt ist, würde ich gern wissen, ob man den Code vielleicht irgendwo noch vereinfachen könnte (ausserdem bin ich echt stolz, dass ich das [fast] ganz alleine geschafft habe und will mein Ergebnis präsentieren)
Code:'Deklarationen $regfile = "m8def.dat" $crystal = 8000000 Ddrc = &B00001100 Portc = &B00000011 '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 Command As Bit Dim Led1 As Bit Dim Led1_sub As Bit Dim Led2 As Bit Dim Led2_sub As Bit 'Programm Cls Do Locate 1 , 1 Lcd " Led1" Locate 2 , 1 Lcd " Led2" Debounce Pinc.0 , 1 , Flag , Sub If Command = 0 Then Gosub Led1 If Command = 1 Then Gosub Led2 Loop End 'Subroutinen Led1: Debounce Pinc.1 , 1 , Led1_sub , Sub Locate 1 , 1 Lcd "-> Led1" Return Led1_sub: If Portc.2 = 1 Then Portc.2 = 0 Locate 1 , 9 Lcd "(aus)" Else Portc.2 = 1 Locate 1 , 9 Lcd "(an)" End If Return Led2: Debounce Pinc.1 , 1 , Led2_sub , Sub Locate 2 , 1 Lcd "-> Led2" Return Led2_sub: If Portc.3 = 1 Then Portc.3 = 0 Locate 2 , 9 Lcd "(aus)" Else Portc.3 = 1 Locate 2 , 9 Lcd "(an)" End If Return Flag: Toggle Command Return
Lesezeichen