I have a weird PORTA problem. I set PORTA Bit 7 to digital input. The pin is pulled up with a resistor to VCC. When I first start the PIC after programing and release from reset, PORTA Bit 7 is at logic low causing my PIC to enter a branch to clear EEPROM and STOP. When I start the PIC again the program behaves normally.
DEFINE OSC 4 'Define the Osc to 8 MHz
asm
bsf OSCCON, SCS1 ; 1x = Internal Block
bcf OSCCON, SCS0 ; 00 = Primary Oscillator (20Mhz?)
bsf OSCCON, IRCF2 ; 111=8000 110=4000 101=2000
bsf OSCCON, IRCF1 ; 100=1000 011=0500 010=0250
bcf OSCCON, IRCF0 ; 001=0125 000=0032
MSTABLE010 btfss OSCCON, IOFS
bra MSTABLE010 ; wait until Oscillator is stable
endasm
data @0,0 'Initialize location 0 on eeprom to zero
LED2 var PORTB.2 ' LED
cntr var word
FET var PORTA.0
TRISA = %01000000 ' Set PORTA port 2 and 7 to input, 0, 3-6 ,8 Output
TRISB = %00000000 ' Set PORTB to all output
PORTB = %00000100 ' Clear PORTB, and set B2
PORTA = %01000000 ' Clear PORTA
led2 = 1
read 0,cntr 'read location 0 or eeprom
FET = 0
if (PORTA.7 = 0) then
pause 255
If (PORTA.7 = 0) then
write 0,0 'reset eeprom to 0 when port A Bit 7 has been forced to 0
Stop
else
Endif
else
endif
Main:
led2 = 0
pause 64
led2 = 1
if (cntr < 10) then
Pause 255 'slow blink under ten cycles
pause 255
else
Pause 64 'fast blink over 10 cycles
endif
cntr = cntr + 1 'increment cntr
write 0,cntr 'write new cntr value into eeprom
if (cntr <= 20) then goto main
FET = 1 'Shut down RF Current
' cntr = 0
stop
goto main
Stop
End
Though this is not a show ender it is bothersome.




Bookmarks