[an error occurred while processing this directive]
|
avr libc версии 1.4.3
есть что-то такоє
float a;
char s[20];
далее "а" где-то там вычисляется и пытаюсь вывести его в строку s
sprintf(s,"a=%f",a);
строку вывожу на HD44780 и что я вижу
a=?
паралельно посылаю те 4 байта в котрых лежит "а" в UART, принимаю на компьютере складываю обратно float и отображаю той-же командой printf
и вижу что-то типа
a=25.1875
совершенно верное значение "а"
Далее еще если к примеру есть еще кодна переменная
int b=10;
а потом
sprintf(s,"a=%f b=%d",a,b);
результат
a=? b=-12408
или что-то похожее. Как я подозреваю вместо переменной "b" мне форматируется часть переменной "а".
ключи компилятора
-g -Os -Wall -Wa -mmcu=atmega32 -c
Как заставить работать правильно ?
E-mail: info@telesys.ru