Простой вопрос, вывод на дисплей

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 71
Зарегистрирован: Пн июн 11, 2007 14:16:06
Откуда: Таганрог

Сообщение slesar »

Всем привет!

cvavr + atmega16.
Объясните мне старому дураку почему не работает вывод на дисплей переменной float:

1. Рабочий вариант для int
unsigned char lcd_buffer[16];
int temp=31;
.....
sprintf(lcd_buffer,"a=%04d",temp);
lcd_clear();
lcd_puts(lcd_buffer);
Выводит а=0031, все круто, так и задумано.

2. Не работает для float:
unsigned char lcd_buffer[16];
float f = 23.5;
.......
sprintf(lcd_buffer,"a=%2.2f",f);
lcd_clear();
lcd_puts(lcd_buffer);
Выводит а=2f.

Что не так? Как вывести float?
Канифоли много не бывает!
Реклама
Грызет канифоль
Сообщения: 289
Зарегистрирован: Чт ноя 06, 2014 13:09:06

Сообщение viiv »

[uquote="slesar",url="/forum/viewtopic.php?p=3161754#p3161754"]Что не так? Как вывести float?[/uquote]
CVAVR никогда не пользовался. Но,
1) Почитать help для sprintf ()
2) Установить опцию проекта, что то типа
СпойлерИзображение
Реклама
Вымогатель припоя
Сообщения: 522
Зарегистрирован: Чт янв 21, 2016 15:59:10

Сообщение ozonn »

сталкивался с аналогичной проблемой. Тут описана и проблема и способ ее решения. Одна загвоздка, у меня Atmel Studio

http://radiokot.ru/forum/viewtopic.php? ... start=2560
Открыл глаза
Аватара пользователя
Сообщения: 71
Зарегистрирован: Пн июн 11, 2007 14:16:06
Откуда: Таганрог

Сообщение slesar »

[uquote="viiv",url="/forum/viewtopic.php?p=3161780#p3161780"][uquote="slesar",url="/forum/viewtopic.php?p=3161754#p3161754"]Что не так? Как вывести float?[/uquote]
CVAVR никогда не пользовался. Но,
1) Почитать help для sprintf ()
2) Установить опцию проекта, что то типа

Спасибо, помогло :beer:
Канифоли много не бывает!
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «AVR»