REALY REALLY CLOSE
Sill close... try this... should work
Code:
'Chip Registers
CMCON = 7 'disable comparators
TRISA = %11111111 'PortA inputs
TRISB = %00000000 'Portb outputs
'Declare and init vars
sw0 var porta.0 'Switches
sw1 var porta.1
sw2 var porta.2
sw3 var porta.3
led0 var portb.0 'LEDs
led1 var portb.1
led2 var portb.2
led3 var portb.3
MaskSwitch var byte 'Select/Case Var
portb = %00000000 'Set portb low
start:
MaskSwitch = porta & $0F 'Care about only PORTA.0 thru PORTA.3
Select Case Maskswitch 'Wait for user input
case 1
gosub sw0_proc
case 2
gosub sw1_proc
case 4
gosub sw2_proc
case 8
gosub sw3_proc
End select
Goto start
sw0_proc: 'Stop waitin and start workin
toggle led0 'toggle Port LED
while sw0 'waiting untill sw is release
wend
pause 20 'cheap debounce delay
return
sw1_proc:
toggle led1 'toggle Port LED
while sw1 'waiting untill sw is release
wend
pause 20 'cheap debounce delay
return
sw2_proc:
toggle led2 'toggle Port LED
while sw2 'waiting untill sw is release
wend
pause 20 'cheap debounce delay
return
sw3_proc:
toggle led3 'toggle Port LED
while sw3 'waiting untill sw is release
wend
pause 20 'cheap debounce delay
return
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks