Eine Möglichkeit, welche ich zu meinen Anfängen mal genutzt habe( Prinzip...):
Code:
Dim Modus as byte
dim pause as integer
config portb=output '8leds an port b
leds alias portb

do
if modus = 1 then gosub prog1
if modus = 2 then gosub prog2
loop
end

prog1:

set leds 'alle leds an
for pause=1 to 500 '0,5 Sekunden leuchten lassen
 waitms 1
 if modus <> 1 then goto ende1
next pause
reset leds
for pause=1 to 500 '0,5 Sekunden dunkel lassen
 waitms 1
 if modus <> 1 then goto ende1
next pause
goto prog1
ende1:
return

prog2:

leds=1 '1. led an
wdh2:
for pause=1 to 500 '0,5 pause
 waitms 1
 if modus <> 2 then goto ende2
next pause
rotate leds,left 'lauflicht...
goto wdh2
ende2:
return

Messen:

If Reading = 0 Then
   Start Timer0
   Reading = 1
Else
   Stop Timer0
   Empf_wert = Timer0
   Timer0 = 0
   Reading = 0
  if empf_wert>95 then 
     modus=1
   else
     modus=2
  endif
End If
Return
alles aus dem Kopf und ungetestet. Evtl kleine Fehler dann selbst beheben...

"Heute" nutze ich meist einen Timer, welcher alle 10 ms (je nach Bedarf)die Variable Tickcount hochsetzt, beim PC bei der gettickcount API abgeschaut