View previous topic :: View next topic |
Author |
Message |
buckeyes1997 Guest
|
16f628 pic compiler giving errors |
Posted: Sun Nov 28, 2004 3:47 pm |
|
|
hey guys i am trying to start using the 16f628 chip and am having difficulty getting the program below to compile. i get a red error along the bottom that says (too many nested #includes). why am i getting this error and how do i fix it??
thanks
matt
Code: | #include "C:\Program Files\PICC\Devices\16F628.h"
#include <LCD.C>
#include <stdio.h>
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
while(1){
lcd_putc("hello world");
lcd_putc("\n PIC 16f628");
}
} |
|
|
|
buckeyes1997 Guest
|
nevermind |
Posted: Sun Nov 28, 2004 4:34 pm |
|
|
okay i figured out why it was doing that however i managed to ruin 2 16f628's in the last 20 minutes. i dont even know how i ruined them but they are not recognized by the programmer any longer and do nothing in the circuit. i thought they were almost direct replacement for the 16f84's. i changed the header file and setup the fuses to use mclr, xp, nolvp, put, etc. as soon as i tried to run my existing lcd program the chips were ruined. is there something obvious that im doing to ruin this chip so fast?? |
|
|
Mark
Joined: 07 Sep 2003 Posts: 2838 Location: Atlanta, GA
|
|
Posted: Sun Nov 28, 2004 5:53 pm |
|
|
Just a note:
Code: | while(1){
lcd_putc("hello world");
lcd_putc("\n PIC 16f628");
} |
You probably want it to be
Code: |
lcd_putc("hello world");
lcd_putc("\n PIC 16f628");
while(1){
} |
or do you really want to keep writing over and over to the LCD forever. |
|
|
buckeyes1997 Guest
|
thanks |
Posted: Mon Nov 29, 2004 6:29 pm |
|
|
hey thanks mark
no i dont want that particular message printed over and over...i had a variable in the second line that i wanted updated and just changed it for debugging purposes.
my real problem is that somehow i went threw 2 628's in about an hour. i had it wired exactly like i did for the f84 and it blew them. what options should be turned on for the 628 to be pin for pin compatible?? i assumed that since the 84 has a mclr pin that i should enable the mclr on the 628 right? everything else is the same as far as i can tell fuse wise other than telling it to not use LVP. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1634 Location: Perth, Australia
|
|
Posted: Mon Nov 29, 2004 8:35 pm |
|
|
Quote: | my real problem is that somehow i went threw 2 628's in about an hour. i had it wired exactly like i did for the f84 and it blew them. |
If you mean you destroyed them - how do you know this? Have you tried erasing and then reprogramming? Is there signs of physical damage? It may be that the configuration bits are set for code protection.
If the device is physically destroyed then it has nothing to do with 16F84 versus 16F628 - look for power supply wiring errors. Or, if you have your programmer powered independantly from the PIC - look for problems in this area - ground connections etc. You could be getting into a latchup scenario in this case a 16F84 can be destroyed as easily as a 16F628 _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
buckeyes1997 Guest
|
|
Posted: Tue Nov 30, 2004 9:44 am |
|
|
basically i tried to program it and the first time it worked fine and programmed but then i put it in the exact same circuit that the f84 was in and it did nothing so then i went to reprogram it and the programmer doesnt recognize it and wont program/erase it at all. i think that something resulted from putting it in the circuit because they programmed fine the first time and after placing it in the circuit that the f84 was in it stopped working. i read that it is a pin out twin of the f84 but there are a few small software differences. i thought i programed the fuses right but maybe that is the problem. i told it to use MCLR, PUT, NOLVP, XT, and that was it i think. the code shouldnt be protected if i dont tell it to use it right? |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1634 Location: Perth, Australia
|
|
Posted: Tue Nov 30, 2004 10:52 am |
|
|
What programmer are you using? My guess is a hardware fault such as wiring error, chip inserted the wrong way around, voltage supply problem as previously mentioned. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
Humberto
Joined: 08 Sep 2003 Posts: 1215 Location: Buenos Aires, La Reina del Plata
|
|
Posted: Tue Nov 30, 2004 11:39 am |
|
|
Hi buckeyes1997,
As asmallri told you
Quote: |
What programmer are you using? My guess is a hardware fault such as wiring error, chip inserted the wrong way around, voltage supply problem as previously mentioned.
|
I guess the same. There is no way to destroy a chip unless a hardware fault.
If you apply voltage in reverse way, it doesn´t burn. Some programmers doesn´t
translate the configuration register settings according to the object file. Read the
config register and check if the CodeProtect bit is set.
Best wishes,
Humberto |
|
|
buckeyes1997 Guest
|
hmmm |
Posted: Tue Nov 30, 2004 8:30 pm |
|
|
well its not like i physically melted the chip or something. all i did was put it in a working 16f84 circuit and it didnt work as it was supposed to so i tried to reprogram it and the programmer didnt recognize the chip and therefore wouldnt program it at all. the circuit was wired correctly as it worked with the other pic and this one is supposed to be a drop in replacement. the programmer has programmed these chips before without any issues so its not the programmer as far as i can tell.
with the mclr pin on the 84 held high and doing the same thing with the 628 might be the problem as the pinout shows it as (notMCLR) instead of MCLR. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1634 Location: Perth, Australia
|
Re: hmmm |
Posted: Tue Nov 30, 2004 8:40 pm |
|
|
Have I understood the following correctly.
1. You took an operational bit of hardware with a PIC16F84 in it.
2. You removed the PIC16F84 from the operational hardware.
3. You programed a PIC16F628 and inserted it into the operational hardware
4. When it did not work you removed the PIC16F628 from the hardware and installed the PIC16F84 back into the operational hardware
5. The hardware is now operating correctly with the PIC16F84
Is this 100% correct?
Quote: | ... it didnt work as it was supposed to |
it didn't work at all or it worked with bugs?
Quote: | with the mclr pin on the 84 held high and doing the same thing with the 628 might be the problem as the pinout shows it as (notMCLR) instead of MCLR. |
The MCLR pin is active low for both devices. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
Charlie U
Joined: 09 Sep 2003 Posts: 183 Location: Somewhere under water in the Great Lakes
|
|
Posted: Tue Nov 30, 2004 9:18 pm |
|
|
This may be way off target, but is there a chance that you some how managed to get the parts into low voltage programming mode. In that case, if your circuit holds the program pin (RB4) high, the part will be in LVP mode and not do anything. Also, there are known problems with programming these parts (16F627 and 628) in "high voltage" mode if RB4 is floating. Try pulling RB4 to ground with a resistor around 4.7k or so if you can while it is in the programmer and try reprogramming them and make certain that low voltage mode is off. |
|
|
|