Timer_irq solltest du net in die Do Loop Schleife schreiben.
Außerdem hast du 2 verschachtelte Do Loop Schleifen. Du brauchst nur eine.
Und wenn du willst, dass dein Programm nur innerhalb der 5 Minuten ausgeführt wird solltest du überprüfen ob Variable Led ungleich 0 ist, sprich 1.
So dürfte es funktionieren.Code:$regfile = "m8def.dat" $crystal = 1000000 $baud = 9600 Config Portb.0 = Output Config Pinc.0 = Input Config Portb.1 = Output Config Pinc.1 = Input Config Pinc.2 = Input Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 Dim I As Integer Dim Led As Integer Led = 0 Config Timer0 = Timer , Prescale = 1024 On Timer0 Timer_irq Const Timervorgabe = 100 Enable Timer0 Enable Interrupts Do If Portc.2 = 1 Then If Led = 0 Then Led = 1 If Led = 1 Then Led = 0 End If Waitms 1 If Led = 1 Then If Pinc.0 = 1 Then Portb.0 = 1 Portb.1 = 0 Portb.1 = 0 Else Portb.0 = 0 Wait 3 Portb.1 = 1 Wait 5 Portb.1 = 0 Wait 3 End If If Pinc.1 = 1 Then Portb.2 = 1 Portb.3 = 0 Portb.3 = 0 Else Portb.2 = 0 Wait 3 Portb.3 = 1 Wait 5 Portb.3 = 0 Wait 3 End If End If Loop Timer_irq: Timer0 = Timervorgabe If I = 30000 Then Led = 0 I = 0 Elseif Led = 1 Then Incr I End If Return
MfG







Zitieren

Lesezeichen