Tag Archives: PIC XC8

sprintf or printf do not output float variables correctly

Have you run into situation under the MPLAB IDE where you are trying to output variables, but even though you have the format correct, a float variable outputs with a .0 value?

Example

(from somewhere else in code)
AIRTEMP=751
====
float adjustedtemp= 0.0;
adjustedtemp= (AIRTEMP + 5)/10;
printf("Air Temp: %5.2f \r\n", adjustedtemp);

the result looks like this

Air Temp: 75.00

when it SHOULD look like this

Air Temp: 75.60

this is due to a bug in the way MPLAB handles floats.

Two easy ways to fix it:

#1:

adjustedtemp= (AIRTEMP + 5.0)/10.0;

or,

#2

adjustedtemp= ((float)AIRTEMP + 5)/10;

Either of these methods will result in the correct value being displayed during your sprintf() or printf() command.

XC8 compiler installer hangs on installation

If you are having a problem with the MICROCHIP XC8 installer hanging on installation under Windows 10 — (see screenshot below):

 

Very easy solution…

 

Change your screen resolution to 1080p, and TURN OFF all “screen scaling/screen zooming” settings

Reboot your computer (trust me, just do this step)

The installer should work fine now.

when done, change your screen back to whatever settings you previously had it at…

let me know if this works for you.  I spent 2 hours trying to figure this one out.

 

PIC XC8 error warning: (1472) –CODEOFFSET option ignored: duplicate or conflicting option

If you receive the following error during an XC8 project build, here is how to fix it

 

warning: (1472) –CODEOFFSET option ignored: duplicate or conflicting option

 

the fix:

under project properties, XC8 Linker, make sure there is either

a) no value (blank) in the CODEOFFSET field

b) some legitimate value in CODEOFFSET that works with your bootloader

 

a ZERO — 0 — as pictured will cause this error during build.