Hier, aber ungetestet. Die Ports müssen angepasst werden, es fehlt der Kopf bezüglich Takt und Stack.
Evtl muss im Lichtschranken SUB jede 0 gegen eine 1 und jede 1 gegen eine 0 getauscht werden.
Code:
Dim Zeitrot as integer
Dim Zeitgruen as Integer
Dim DrehungLinks As Byte
Dim DrehungRechts As Byte
Dim Linksrechts As Byte
Links Alias Pind.3     'Eingang 1. Lichtschranke
Rechts Alias Pind.4    'Eingang 2. Lichtschranke
LEDgruen Alias Portd.5 'Ausgang grüne LED
LEDrot Alias Portd.6   ' Ausgang rote LED

ddrd =01100000

do
gosub Lichtschranke
if DrehungRechts >0 then
 zeitrot = 32767
 set ledrot
 DrehungLinks =0
end if
if DrehungLinks >0 then
	zeitgruen = 32767
	set ledgruen
   DrehungLinks = 0
end if
if zeitrot > -32767 then
   decr zeitrot
else
	reset ledrot
end if
if zeitgruen > -32767 then
   decr zeitgruen
else
	reset ledgruen
end if

loop
end
Lichtschranke:
      If Linksrechts = 0 Then
         If Links = 0 And Rechts = 1 Then
            Linksrechts = 1
         End If
         If Rechts = 0 And Links = 1 Then
            Linksrechts = 11
         End If
      End If

      If Linksrechts = 1 And Links = 0 And Rechts = 0 Then
         Linksrechts = 0
         incr DrehungLinks
      End If



      If Linksrechts = 11 And Links = 0 And Rechts = 0 Then
         Linksrechts = 0
         incr DrehungRechts
      End If

      If Links = 1 And Rechts = 1 Then Linksrechts = 0
   


Return