View previous topic :: View next topic |
Author |
Message |
rwskinner
Joined: 08 Dec 2006 Posts: 125 Location: Texas
|
New Compiler update - Fuses disappeared |
Posted: Mon Aug 30, 2010 8:49 pm |
|
|
After the update today my code no longer compiles.
Fuses for the 18F26J50 are gone.
Primary <- Missing
PLLDIV5 <- Missing
They were there a month ago because those fuses worked fine.
I wonder why they were removed?
I emailed support but they may or may not reply, if they do, it will take several days at the minimum.
Richard |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Aug 30, 2010 9:19 pm |
|
|
Look at the list of fuses at the top of the 18F26J50.h file.
It looks like they changed it to PLL5.
To replace PRIMARY, I would guess that you should use HSPLL or INTRC_PLL.
To verify your changes, compile your program with the previous compiler
version you were using. Save the .LST file somewhere. Then install the
new version and change the fuses. Compile again and compare the Hex
values for the fuses given at the end of the .LST file, and make sure they
are the same. If not, change the fuses to some reasonable looking
setting and try again until you get a match with the old values. |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Mon Aug 30, 2010 10:56 pm |
|
|
Fortunately the CCS compiler allows version dependant defines, I have have a lot of them in my code to handle arbitrary
changes to fuse naming. Sometimes they correct previous erronous fuse names, sometimes they seem just to follow a temper.
Code: | #IF getenv("VERSION")>=4.087
#FUSES ICSP1
#ELSE
#FUSES ICS3
#ENDIF
#IF getenv("VERSION")>=4.110
#FUSES WDT128 //Watch Dog Timer PreScalar 1:128
#ELSE
#FUSES WPRES128
#ENDIF |
In any case, you can review the "valid fuses" info of the compiler IDE. You can also edit the decoding of fuses in the
Device Eidtor tool. Sometimes it's necessary, if a required fuse entry has completely vanished in a new compiler release. |
|
|
|