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