@Matthias
Auch wenn dein Programm jetzt funktioniert, habe ich die trotzdem mal ein Programm geschrieben wo du sehen kannst wie man so was macht.
Ich muß ehrlich sagen als ich dein Programm gesehen habe standen mir die Haare zu Berg.
Code:
$regfile = "8515def.dat"
Dim I As Integer
Dim Schalter1an As Bit
Dim Schalter2an As Bit
Dim Bytetemp As Byte
Config Pina.0 = Input
Config Portb = Output
Config Portc = Output
Portb = 0
Portc = 0
Do
' lampen 1
If Pina.0 = 1 Then
If Schalter1an = 1 Then
If Portb = 255 Then
Schalter1an = 0
End If
Else
If Portb = 0 Then
Schalter1an = 1
End If
End If
While Pina.0 = 1 ' WARTEN BIS TASTE WIDER LOSGELASSEN
Wend
End If
' end lampen 1
' lampen 2
If Pina.1 = 1 Then
If Schalter2an = 1 Then
If Portc = 255 Then
Schalter2an = 0
End If
Else
If Portc = 0 Then
Schalter2an = 1
End If
End If
While Pina.1 = 1 ' WARTEN BIS TASTE WIDER LOSGELASSEN
Wend
End If
' end lampen 2
' lampen 1
If Schalter1an = 1 And Portb <> 255 Then
Bytetemp = Portb
Bytetemp = Bytetemp + 1
Portb = Portb Or Bytetemp
End If
If Schalter1an = 0 And Portb <> 0 Then
Shift Portb , Right
' Shift Portb , Left ' anders rum
End If
' end lampen 1
' lampen 2
If Schalter2an = 1 And Portc <> 255 Then
Bytetemp = Portc
Bytetemp = Bytetemp + 1
Portc = Portc Or Bytetemp
End If
If Schalter2an = 0 And Portc <> 0 Then
Shift Portc , Right
' Shift Portc , Left ' anders rum
End If
' end lampen 2
For I = 1 To 5
'Die for Schleife ist nur beim Simulator notwendig, weil der wait befehl mit der LCD Anzeige im Simulator nicht funktioniert.
'Also wenn fertig Schleife durch Wait ersetzen.
' Waitms 0.1
Next I
Loop
mfg Guy
Edit
Hier noch ein Beispiel wie du zum Beispiel die Lampen auch ausschalten kannst.
Code:
If Schalter1an = 0 And Portb <> 0 Then
' Shift Portb , Right
' Shift Portb , Left ' anders rum
Portb = Portb / 2
End If
Mußt dich mal mit binär rechen abgeben. Als Beispiel, bei einer Binärzahl verschiebst du durch Division alles nach Rechts, und durch Multiplikation alles nach links.
Lesezeichen