When configuring MCLR'/VPP as GP3 for input on the 12F683, do you program it afterwards via the same protocol - i.e.- does the programming function of the MCLR'/VPP pin change, or will I still be able to program via ICSP as normal?
When configuring MCLR'/VPP as GP3 for input on the 12F683, do you program it afterwards via the same protocol - i.e.- does the programming function of the MCLR'/VPP pin change, or will I still be able to program via ICSP as normal?
You can set it up for an input from the beginning of the program then still use it later for programming. Just make sure your circuit will still allow the Vpp signal to control it during programming otherwise it will boop at you and report an error.
Louie
And make sure you circuit will handle the programming voltage.
I like to use some method of isolation when programming. The simplest is a two pin header with a jumper clip.
Dave
Always wear safety glasses while programming.
Makes sense, thanks guys - I had planned on input circuit isolation at the pin, but wasn't sure if there was some other issue that I'd run into during subsequent programming...
Thanks again, and happy new year all!
Hi, new to this forum and to PIC's in general. I fly RC and have used a 12F683 to act as failsafe system for 3 servos.
I've tried the pulsout command but the output just goes HI?? (I have scope to check).
Here is the code:
pos var byte ' Define our storage location for the servo position information.
servo var byte ' Define our storage location for the servo number to move.
cont var byte ' Define a variable to hold the count.
' 4 mhz clock internal
' 500 = 1 ms
' 1000 = 2 ms
' 1250 = 2.5 ms
pos = 1250
start:
for cont = 0 to 50
pulsout portb.4,pos ' Send servo# ? to position ?.
pause 20 ' Wait 20 ms.
next cont ' Next pulse.
goto start ' Return to get more serial input.
Can anyone help??
Try changing pos to a WORD size var and see if that helps
Dave
Always wear safety glasses while programming.
As a newbie, I was under the impression that the MCLR had to be pulled high when the circuit is powered up, but after reading a little more, I'm not sure. My circuit will have a switch that is either off or on at power up. I'm planning to pull a pin to ground if the switch is on and then I would use internal pull-ups on the pin when it is off. Since I don't program the chips on board, can I use the MCLR pin for the switch, or does it need to be high when the circuit is powered up? That would be awesome if I could free that pin up for use.
Gary
On the 12F683, MCLR can be handled internally by the PIC (see CONFIG options in the PICs Datasheet), thereby freeing that pin for your use. (equally applies to 12F675 and 16F628 since they were mentioned earlier in this thread).
Thank you Melanie,
I looked at the data sheet and see what you are saying. The one thing I'm still not sure about is if the MCLR pin has to be high when the circuit is powered up? If so, then my switch won't work since it may be pulling the pin to ground. This blurb from the PIC Basic Pro manual is what has me confused:
GaryMake sure the /MCLR pin is connected to 5 volts either through some kind of voltage protected reset circuit or simply with a 4.7K resistor. If you leave the pin unconnected, its level floats around and sometimes the PICmicro MCU will work but usually it won=t. The PICmicro MCU has an on-chip power-on-reset circuit so in general just an external pull-up resistor is adequate.
If you set the CONFIG for the PIC to handle MCLR internally, then FORGET about MCLR being high or low... it's all handled for you behind the scenes.
Thereafter the pin (that was formally the MCLR pin) is treated as a regular I/O (except that on some PICs it's INPUT ONLY - check with your PICs Datasheet).
If you need the pin to be normally HIGH and it's pulled down by your switch, then you need a PULL-UP Resistor (usually connected between the PIC pin concerned and +5V). Some PICs have internal Pull-Ups you can enable either on a pin-by-pin basis, or globally for an enitire Port. Again check with your Datasheet if the pin you want to use has Pull-Up's available on it - not all pins have them.
If you need the pin to be normally LOW and pulled-up by your switch (not a recommended way of connection - but it will work), then you need a PULL-DOWN Resistor (usually connected between the PIC pin concerned and 0v). You will have to provide one of those yourself externally as the PIC will not provide one internally. Any value between 4K7 and 22K would probably suffice.
Bookmarks