Heres an extract of working code which hopefully demonstartes what i mean. Its a piece of code which makes the LEDs look as if the are fading on and off. I would like to step to the next LED immediately the button is pushed, no matter at what position the fading is at. Can this be done?
sure it can be done.
Code:
start:
Select Case PushHowManyTimes
case 1
GetOut = 0
gosub FadeRed
Case 2
GetOut = 0
gosub FadeGreen
end select
goto start
FadeRed:
bright = 0
while (Bright !=255) and (GetOut=0)
PWM Red,Bright,1
bright = bright + 1
wend
while (bright !=0) and (getout = 0)
PWM Red,Bright,1
bright=bright - 1
wend
return
FadeGreen:
bright = 0
while (Bright !=255) and (GetOut=0)
PWM Green,Bright,1
bright = bright + 1
wend
while (bright !=0) and (getout = 0)
PWM Green,Bright,1
bright=bright - 1
wend
return
' Interrupt handler stuff here
'
DISABLE ' Disable interrupts in handler
ProcedureSwitcher:
INTCON.7 = 1 'disable all interrputs
PORTC=0 ' reset output to PORTC
DelayLoop=Delay ' to exit the delay loop
GetOut = 1 ' to get out of the entire PWM loops
PushHowManytimes=PushHowManytimes+1 ' Changing task
If PushHowManytimes=3 then PushHowManytimes=1
While PORTB.0 = 0 ' waiting untill
wend ' push-button is release
pause 100 ' debounce time
INTCON = %10010000 ' Enable RB0 interrupt
' reset RB0 interrupt flag
RESUME ' Return to main program
ENABLE ' Enable interrupts after handler
Bookmarks