hehe, you're just close.... you just forget a GOTO after the SELECT CASE statement.
Code:
CMCON = 7 'disable comparators
TRISA = %11111111 'PortA inputs
TRISB = %00000000 'Portb outputs
'Declare and init vars
sw0 var porta.0
sw1 var porta.1
sw2 var porta.2
sw3 var porta.3
led0 var portb.0
led1 var portb.1
led2 var portb.2
led3 var portb.3
MaskSwitch var byte
'Set all leds low
portb = %00000000
Start:
MaskSwitch = porta & $0F 'Isolate PortA.0 thru PORTA.3
' & : Logical AND bitwise operation
' $0F : %00001111
Select Case Maskswitch
case 1 'or PORTA = %00000001
gosub sw0_proc
case 2 'or PORTA = %00000010
gosub sw1_proc
case 4 'or PORTA = %00000100
gosub sw2_proc
case 8 'or PORTA = %00001000
gosub sw3_proc
End select
Goto start
sw0_proc:
While sw0
LED0 = 1
Wend
Led0=0
Return
sw1_proc:
While sw1
LED1 = 1
Wend
Led1=0
Return
sw2_proc:
While sw2
LED2 = 1
Wend
Led2=0
Return
sw3_proc:
While sw3
LED3 = 1
Wend
Led3=0
Return
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks