strunz
15.03.2006, 12:32
Hallo Leute,
ich habe hier mal folgenden code zusammengeschrieben:
$regfile = "m32def.dat"
$crystal = 4000000
$baud = 9600
Rem Portb.4 = 1 --> Motor links vor
Rem Portb.5 = 1 --> Motor links rück
Rem Portb.6 = 1 --> Motor rechts vor
Rem Portb.7 = 1 --> Motor links rück
Config Portb = Output
Config Portd = Input
Config Portc = Input
Do
' Alles Weiß --> vorwärts
If Pinc.2 = 1 Then
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 1 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 0
Portb.7 = 1
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 1 And Pind.6 = 1 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 1 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 1 And Pind.5 = 1 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 1 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 1 And Pind.4 = 1 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 1 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 0
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 1 And Pind.3 = 1 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 0
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 1 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 0
Portb.5 = 1
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 1 And Pind.3 = 1 And Pind.4 = 1 And Pind.5 = 1 And Pind.6 = 1 Then
Portb.4 = 0
Portb.5 = 1
Portb.6 = 0
Portb.7 = 1
End If
End If
If Pinc.2 = 0 Then
Portb.4 = 0
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
End If
Loop
Es ist ein code für einen Liniensucher mit cny70 sensoren.
Jetzt habe ich aber folgendes Problem:
Es funktioniert nur bei komplett schwarzem untergrund richtig(die räder drehen rückwärts).
bei weissem untergrund schalten die motoren willkürlich durch die gegend.
Habe die pins an portd.2 bis portd.6 wärend dem weissen untergrund mal gemessen: die scheinnen irre schnell zwischen hi und low zu schalten...
Habe ich im code was vergessen? Ist er selbst fehlerhaft?
Bitte um mithilfe.
ich habe hier mal folgenden code zusammengeschrieben:
$regfile = "m32def.dat"
$crystal = 4000000
$baud = 9600
Rem Portb.4 = 1 --> Motor links vor
Rem Portb.5 = 1 --> Motor links rück
Rem Portb.6 = 1 --> Motor rechts vor
Rem Portb.7 = 1 --> Motor links rück
Config Portb = Output
Config Portd = Input
Config Portc = Input
Do
' Alles Weiß --> vorwärts
If Pinc.2 = 1 Then
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 1 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 0
Portb.7 = 1
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 1 And Pind.6 = 1 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 1 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 1 And Pind.5 = 1 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 1 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 1 And Pind.4 = 1 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 1
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 0 And Pind.3 = 1 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 0
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 1 And Pind.3 = 1 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 0
Portb.5 = 0
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 1 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 And Pind.6 = 0 Then
Portb.4 = 0
Portb.5 = 1
Portb.6 = 1
Portb.7 = 0
End If
If Pind.2 = 1 And Pind.3 = 1 And Pind.4 = 1 And Pind.5 = 1 And Pind.6 = 1 Then
Portb.4 = 0
Portb.5 = 1
Portb.6 = 0
Portb.7 = 1
End If
End If
If Pinc.2 = 0 Then
Portb.4 = 0
Portb.5 = 0
Portb.6 = 0
Portb.7 = 0
End If
Loop
Es ist ein code für einen Liniensucher mit cny70 sensoren.
Jetzt habe ich aber folgendes Problem:
Es funktioniert nur bei komplett schwarzem untergrund richtig(die räder drehen rückwärts).
bei weissem untergrund schalten die motoren willkürlich durch die gegend.
Habe die pins an portd.2 bis portd.6 wärend dem weissen untergrund mal gemessen: die scheinnen irre schnell zwischen hi und low zu schalten...
Habe ich im code was vergessen? Ist er selbst fehlerhaft?
Bitte um mithilfe.