Ist das dein vollständiges Programm?
Wenn ja, dann fehlt da auf jeden Fall noch eine Do-Loop-Schleife.
So dem Problem mit den Balken:
Füge mal nach dem
Code:
Config Lcd = 16 * 1a
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcdbus = 4
noch ein initLCD ein. Dann kann schon mal helfen.
Des Weiteren; verwendest du wirklich einen 1MHz Quarz? Ist diese Einstellung falsch, kann es auch zu Fhelern kommen.
Mehr fällt mir gerade nicht ein.
Trotzdem will ich noch etwas allgemeines los werden: Es macht Sinn, dem Programm auch oprisch eine Struktur zu verpassen. Dann ist es deutlich leichter zu lesen.
Ein Vorschlag von mir (samt oben genannten Verbesserungsvorschlägen, Kommentierungen wird Bascom dir automatisch nach rechts rücken):
Code:
$regfile = "m8def.dat"
$crystal = 1000000 '1MHz Quarz
Config Lcd = 16 * 1a
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcdbus = 4
InitLCD
Config Pinb.1 = Input 'Pinb.1= Automatikschalter
Portb.1 = 1 'Pull-Up an
Config Pinb.2 = Input 'Pinb.3= handbetriebsschalter
Portb.2 = 1 'Pull-Up an
Config Pinb.3 = Input 'Pinb.2= testschalter
Portb.3 = 1 'Pull-Up an
Config Pinb.4 = Input 'Pinb.4= Anschalter ( Immer auf 0 )
Portb.4 = 1 'Pull-Up an
'---Start_Main-Program---
Do
If Pinb.4 = 0 Then
Cls
Locate 1 , 1
Lcd "Power on"
End If
If Pinb.4 = Pinb.2 Then
Cls
Locate 1 , 1
Lcd "Test"
End If
If Pinb.4 = Pinb.3 Then
Cls
Locate 1 , 1
Lcd "Handbetrieb"
End If
If Pinb.4 = Pinb.1 Then
Cls
Locate 1 , 1
Lcd "Automatik"
End if
Loop
'---End_Main-Program---
End
Viele Grüße,
jon
Lesezeichen