Du musst IMMER erst die innere Schleife (also loops, ifs, whiles, usw.) beenden, bevor du die äußere beendest.
Hier mal dein Code
Code:
$regfile = "m32def.dat" 'Die Anweisung bestimmt Controllertyp, hier AVR Mega 8
$framesize = 32 'Stackanweisungen, die eigentlich nur bei größeren Programmen
$swstack = 32 'wirklich nötig werden
$hwstack = 32
$crystal = 16000000 'Die Frequenz des verwendeten Quarzes
Dim Mot_flag As Bit
Mot_flag = 0
Ddra.1 = 0 'Pins A.1 und A.2 werden als Eingänge konfiguriert
Ddra.2 = 0
Ddra.3 = 1 'Pins A.3 und A.4 werden als Ausgänge konfiguriert
Ddra.4 = 1
Ddrb.1 = 0 'Eingang für Start-Taster wird konfiguriert
Porta.1 = 1 'Pullupwiderstand der Eingänge wird aktiviert
Porta.2 = 1
Porta.3 = 0 'Ausgänge werden auf LOW gesetzt
Porta.4 = 0
Portb.1 = 1 'Pullupwiderstand wird aktiviert
Do
If Pinb.1 = 1 Then Toggle Mot_flag 'Bei Betätigung des Tasters...
If Mot_flag = 1 Then
If Pina.1 = 1 Then 'Wenn Lichtsensor 1 auf HIGH,...
Porta.3 = 1 'Dann Motor 1 auf HIGH,...
Else 'Sonst Motor 1 auf LOW
Porta.3 = 0
End If
If Pina.2 = 1 Then 'Wenn Lichtsensor 2 auf HIGH,...
Porta.4 = 1 'Dann Motor 2 auf HIGH,...
Else 'Sonst Motor 2 auf LOW
Porta.4 = 0
End If
Else
Porta.3 = 0
Porta.4 = 0
End If
Loop 'Wiederholen
Außerdem werden Pullups ohne "Config" geschrieben, einfach nur
Hast du wirklich alles verstanden? Das hier sind die Basics der Basics
Lesezeichen