I do not know what version of PICBasic you are using or what version of MPASM either.
I compiled and ran the following code in the MPASM Simulator and it works fine for all (3) IF/THEN statements in main.
If adval <= 419 then myLED does not increment.
If adval > 419 and <= 450 then myLED only increments 1 time for each loop (IF/THEN #1 : Not #2 and #3)
if adval > 450 and < 536, then myLED increments 3 times for each loop (IF/THEN #1, #2 and #3)
if adval => 536 and < 600 then myLED increments 2 times for each loop (IF/THEN #2 and #3 : Not #1)
if adval => 600 then myLED does not increment.
Code:
'MCU = 12F675
'PBP v3.0.7.4
'MPASM v8.90
DEFINE OSC 4
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
CMCON = 7
OPTION_REG = %10000110
TRISIO = %00001100
GPIO = %00000001
ANSEL = %00010100
ADCON0 = %10001001
adval var word
myLED var word
adval = 0
myLed = 0
goto main
LED:
myLED = myLEd + 1
return
main:
for adval = 0 to 700
If adval > 419 and adval < 536 then gosub LED 'Works
If adval > 450 and adval < 600 then gosub LED 'Works
If adval < 600 and adval > 450 then gosub LED 'Works
next
myLed = 0
goto main
Bookmarks