Понадобилось мне как то вывести переменную типа float на LCD дисплей.
Написал код:
#define F_CPU 1000000UL // 1 MHz #include <avr\io.h> #include <util\delay.h> #include "LCD.h" #include <stdio.h> unsigned int a = 123; char buffer[200]; float my_custom_float = 25.64; int main (void){ LCDinit(); sprintf(buffer,"V = %.2f uS",my_custom_float); LCDstring(buffer,0,0); }
На дисплее ожидалось увидеть следующее: (V = 26.64 uS), но выводилось только (V = Us).
Чтобы решить эту проблему, необходимо перейти в свойства проекта:
Необходимо в AVR C Linker прописать вот этот аргумент: (-Wl,-u,vfprintf).
Добавить параметр для библиотеки:
printf_flt
После проделанных манипуляций, должно работать.