Simple question about While Wend...
I have been trying for a while to get this simple code to work. Can someone tell me why it won't?
Thanks, Don
while porta.2 <> 0
wend
high portb.6
porta.2 has pullup installed but led on portb.6 always lights....... isn't it supposed to sit there until porta.2 becomes low?
Re: Simple question about While Wend...
"<>0" is the equivalent of "= 1" for a hi low read.
Norm
Re: Simple question about While Wend...
Right.... while pin 2 is at a high state shouldn't the program stay in the while/wend loop until it goes low and then jump out and turn on the LED?
Re: Simple question about While Wend...
Quote:
Originally Posted by
dbachman
Right.... while pin 2 is at a high state shouldn't the program stay in the while/wend loop until it goes low and then jump out and turn on the LED?
Yes
Try if not already:
Read a PortB pin in place of portA to avoid config errors.
Initialize Low portB.6
Is the read pin an input?
Norm
Re: Simple question about While Wend...
this is the code..
Trisa = 1
Trisb = %00100000
portb = 0
while portb.5 = 1
wend
high portb.4
Re: Simple question about While Wend...
Try adding some debugs to see if you can find where the breakdown occurs:
Code:
Trisa = 1
Trisb = %00100000
portb = 0
if portb.5 = 1 then
SerOut2 cSEROUT_PIN,cBAUD,["PRE HI",13]
else
SerOut2 cSEROUT_PIN,cBAUD,["PRE LOW",13]
endif
while portb.5 = 1
if portb.5 = 1 then
SerOut2 cSEROUT_PIN,cBAUD,["LOOP HI",13]
else
SerOut2 cSEROUT_PIN,cBAUD,["LOOP LOW",13]
endif
wend
if portb.5 = 1 then
SerOut2 cSEROUT_PIN,cBAUD,["AFT HI",13]
else
SerOut2 cSEROUT_PIN,cBAUD,["AFT LOW",13]
endif
high portb.4
Norm
Re: Simple question about While Wend...
What PIC MCU are you using?
Should you be using LATB register instead of PORTB register for your High and Low statements?
Read modify write may be an issue.
Re: Simple question about While Wend...
I am using an 18f2550.....
Norm...I don't think I am experienced enough to use that debug code...
I have looked back at some other code I have written and have used while/wend the same way.. should I use a pullup on portb.5 to ensure it is high?...I will try that but I think I have already..
Thanks for helping me figure this out...
Re: Simple question about While Wend...
I guess that was it...the pullup resistor on the input...apparently it was floating...
Re: Simple question about While Wend...
Hi
Portb on the 18f2550 has analog inputs. You need to set the those pins to digital.
Try adding
ADCON1 = %00111111
This will make all the analog pins digital, see page 254 data sheet