I suspect your "OSCCON=%01110000" setting but I could not figure it out for 20Mhz HS setting.
------------------------------
I suspect your "OSCCON=%01110000" setting but I could not figure it out for 20Mhz HS setting.
------------------------------
"If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte
My understanding is that setting bits 1 and 0 to 0 make the rest of the OSCCON register meaningless. The value i have set there is left over from other messing around.
russ
Wow, so many people are using and having problems with 16F88 PICs right now I thought I might have missed out on a give away
Point to remember about this chip is : it has ANSEL, ADCON0,ADCON1, CMCON, REGISTERS, neglect one and it's not happy. The data sheet says" On power on reset the pins PortA<4:0> are configured as analog inputs and read as 0."
Anyway try this and see if it helps.Code:' PicBasic program to demonstrate operation of an LCD in 4-bit mode ' ' LCD should be connected as follows: ' LCD PIC ' DB4 PortA.0 ' DB5 PortA.1 ' DB6 PortA.2 ' DB7 PortA.3 ' RS PortA.4 (add 4.7K pullup resistor to 5 volts) ' E PortB.3 ' RW Ground ' Vdd 5 volts ' Vss Ground ' Vo 20K potentiometer (or ground) ' DB0-3 No connect @ DEVICE PIC16F88, HS_OSC 'HS oscillator @ DEVICE PIC16F88, WDT_ON 'Watchdog Time ' (http://www.hobbyprojects.com/pic_tut...utorial13.html) @ DEVICE PIC16F88, PWRT_ON '15.5 Power-Up Timer: Provides a fixed delay of ' 72 ms (nominal) on power-up only. It is designed to keep the ' part in RESET while the power supply stabilizes. @ DEVICE PIC16F88, BOD_ON '15.7 Brown-Out Detect @ DEVICE PIC16F88, MCLR_ON 'Master Clear Options set to Internal. RA5 unavail @ DEVICE PIC16F88, LVP_OFF '15.18 Low Voltage Programming via ICSP. @ DEVICE PIC16F88, CPD_OFF '15.1 bit 8 - Data EE Memory Code Protection bit @ DEVICE PIC16F88, WRT_OFF '15.1 bit 10-9. FLASH Program Memory Write protection off @ DEVICE PIC16F88, DEBUG_OFF '15.1 bit 11. DEBUG: In-Circuit Debugger Mode bit ' In-Circuit Debugger disabled, RB6 and RB7 are general ' purpose I/O pins @ DEVICE PIC16F88, CCPMX_OFF '15.1 bit 12. CCPMX: CCP1 Pin Selection bit ' 1 = CCP1 function on RB0 ' 0 = CCP1 function on RB3 @ DEVICE PIC16F88, PROTECT_OFF 'Code protection off 'Command Operation '$FE, 1 Clear display '$FE, 2 Return home (beginning of first line) '$FE, $0C Cursor off '$FE, $0E Underline cursor on '$FE, $0F Blinking cursor on '$FE, $10 Move cursor left one position '$FE, $14 Move cursor right one position '$FE, $80 Move cursor to position 0 (+offset to precisly posn) '$FE, $C0 Move cursor to beginning of second line (+offset to precisly posn) '$FE, $94 Move cursor to beginning of third line '$FE, $D4 Move cursor to beginning of fourth line define OSC 20 OSCCON=%01110000 ' pg 41. Setting bit 1-0: 00 = Oscillator mode defined by FOSC<2:0> TRISB=%00000000 ' all portb to output TRISA=%00000000 ' all porta to output ANSEL=%00000000 ' set all analog pins to digital <font color=red> CMCON=7 ' turn off comparators ADCON1 = 7 ' or ADCON1 = %00000111 'Disable A/D converter </font color=red> pinLED var portb.4 ' blink and stuff to know we're alive I var word high pinLED Pause 1500 ' Wait for LCD to startup loop: low pinLED Lcdout $FE, 1, "Russ was here ..." pause 1000 lcdout $FE, $C0, " or was he ..." pause 4000 ' Give that some time to sink in. lcdout $FE,1 ' Clear screen lcdout $FE, $C0, "Second line ..." pause 500 lcdout $FE, 2, "First line ..." pause 500 lcdout $FE, 1 ' Clear the screen again - we love to clear screens. pause 500 lcdout $FE, $80, "Dec:" lcdout $FE, $C0, "Hex:" for I = 0 to 199 lcdout $FE, $80+5, dec3 I lcdout $FE, $C0+5, hex3 I toggle pinLED pause 200 next I pause 1500 ' Alone done - take a quick breather. Goto loop ' Start all over again.
JS
Thanks for the response. Properly setting those registers did not seem to help my specific problem.
Additionally, I set the OSCCON to 0 and used HS in the HW programmer (with external 20Mhz resonator) and that did not make a difference - still seeing flakey bahaviour.
I set:
define OSC 8
OSCCON=%01110110
and it was still flakey.
I am starting to suspect that my board is just bad. I wired it on a breadboard and it was reliable without the resonator though i had to jiggle the wires around quite a bit to get it to work.
russ
OK.. you're using an external OSC, BUT not the MCLR pin, so just make MCLR pin as I/O OR tie it to Vdd via 10K resistor... it should work Better.
If you're using an external OSC, the OSCCON stuff won't change anything. So i bet that..
could helpCode:@ DEVICE PIC16F88, HS_OSC 'HS oscillator @ DEVICE PIC16F88, WDT_ON 'Watchdog Time ' (http://www.hobbyprojects.com/pic_tut...utorial13.html) @ DEVICE PIC16F88, PWRT_ON '15.5 Power-Up Timer: Provides a fixed delay of ' 72 ms (nominal) on power-up only. It is designed to keep the ' part in RESET while the power supply stabilizes. @ DEVICE PIC16F88, BOD_ON '15.7 Brown-Out Detect @ DEVICE PIC16F88, MCLR_OFF 'Master Clear Options set to Internal. RA5 unavail @ DEVICE PIC16F88, LVP_OFF '15.18 Low Voltage Programming via ICSP. @ DEVICE PIC16F88, CPD_OFF '15.1 bit 8 - Data EE Memory Code Protection bit @ DEVICE PIC16F88, WRT_OFF '15.1 bit 10-9. FLASH Program Memory Write protection off @ DEVICE PIC16F88, DEBUG_OFF '15.1 bit 11. DEBUG: In-Circuit Debugger Mode bit ' In-Circuit Debugger disabled, RB6 and RB7 are general ' purpose I/O pins @ DEVICE PIC16F88, CCPMX_OFF '15.1 bit 12. CCPMX: CCP1 Pin Selection bit ' 1 = CCP1 function on RB0 ' 0 = CCP1 function on RB3 @ DEVICE PIC16F88, PROTECT_OFF 'Code protection off
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Whose the stud?? Steve aka mister_e, that's who!
Thx much for noticing my problem with the MCLR fuse setting.
I changed it to the correct value (MCLR_OFF since i don't have reset wired in my schematic) and voila - flowers and discount surplus parts rained from the sky to bring happiness to the masses - even though they were sober and balding ...
Very much appreciate the attention to detail. Thanks again for your assistance.
Russ
CONGRATULATIONS russman613 and
<font color=red><h1> Hurray for mister_e !</h1></font color> the devil is always in the details! Nice catch Steve!
Bookmarks