Hello Loenel,

How accurate does it have to be on blinking every 20 seconds?
We now have concluded that there is muching going on, thus, it is not just a simple "Blink" a light.

1. How long of a pause is allowed?

For example: Untested... but the idea is there...

Code:
  Counter1 var word
  Counter2 Var word
  Loop:
  Counter1=0
  Counter2=0
  Loop2:
   if Counter1< 20
     if Counter2 <1000
         Pause 1  'Pause 1/1000 of a second
         CheckButtons....
         Do stuff...
         CheckButtons....
         Do Stuff
            if CheckButtons==Pushed then goto Loop
         Counter2=Counter2+1;
     Endif
     
     if(Counter2>=1000)
       Counter1=Counter1+1;
       counter2=0;
     endif
   endif
   if Counter1<20 goto Loop2

  Blink light = on
  Pause 200  'pause 1/5 of a second to light up the light.
  Blink Light = off
  goto Loop:
Granted, this is a "oversimplification" of code. But it is a generic program that will allow lights to be blinked and still scan keys once ever 1/1000 of a second (with the exception of a blinky light.