We have a 2-year old custom board that was developed with Kinetis K22FX512 MCU.
I'm doing code re-engineering and maintenance of its firmware inside Kinetis Design Studio IDE for 1.5 years to add new features as requested for the product's enhancements and upgrades.
All these years, all the numeric data are integers.
Now, I am required to change of the16-bit integer data to floating point, e.g. instead of 999 seconds, I'm converting to 99.9 minutes. This way, timer can go above 16+ minutes in 16-bit as well as for limit 3-character display that can only show 3 digit positions.
Before altering anything about this data, I had to first try defining, declaring and printing a floating point variable.
I searched previous posts on this forum about "PRINTF_FLOAT_ENABLE" and such. I found about 3 threads from 2015 about the matter and tried them all out, changing "settings" in project's property in compiler and linker sections. However, none of them works. I get the same result as those posts reported, whereby only "f" is printed in place of the %f in the printf() function. I even #included <float.h> standard C library but still the same problem. Only character "f" prints on the debug console.
Does anyone else know how to fix this problem for this MCU in KDS?
Thanks for your help.
Hi Erich and Jing,
Thanks for your instructions.
I apologize if I was not clear, but I am using a USB - FTDI UART protocol connected terminal emulator console outside of KDS (and MCUXpresso on the other project). I'm not using the "Console" tab inside KDS. I see message dumps there for builds, erase, programming and debug start but I dump all printf's out through UART.
I found one of old posts that is what I tried yesterday & it works by basically separating the whole number part from the decimal place part of the floating point number, and then concatenating them together as a "string" by sprint.
I think that's what I'll be implementing here onwards. Afterall, this display is only for debugging purposes. I know internally in the float variable, the format is a float and all math computations work normal on the float.
You may refer to this link where I found this method:
Let me know if you have any further comments or suggestions.
Thanks again for the help,
but KDS can print float format well. Please see the attachment.