Прочитав краткий курс по AVR, огромное спасибо автору, захотел написать программку, но возник вопрос: как вывести на LCD(HD44780) перемену типа float? Из-за нехватки знаний не могу решить эту задачу. Кто может подскажите пожалуйста.
В каком смысле "как"? По моему туда и обычные числа просто так не вывести... Если уже умеешь выводить строки - напечатай число в строку sprintf'ом и выведи строку, которая получится.
rock писал(а):Прочитав краткий курс по AVR, огромное спасибо автору, захотел написать программку, но возник вопрос: как вывести на LCD(HD44780) перемену типа float? Из-за нехватки знаний не могу решить эту задачу. Кто может подскажите пожалуйста.
В курсе - http://avr123.nm.ru/z5.htm - тоже выводится число с точкой но оно не float такая же имитация в примерах в папке CVAVR
В хелпе CVAVR надо посмотреть раздел "LCD Functions" и наверно преобразовать float в строку и уже строку вывести на LCD.
=======
void ftoa(float n, unsigned char decimals, char *str)
converts the floating point number n to characters in string str. The number is represented with a specified number of decimals.
void ftoe(float n, unsigned char decimals, char *str)
converts the floating point number n to characters in string str. The number is represented as a mantissa with a specified number of decimals and an integer power of 10 exponent (e.g. 12.35e-5).
Если надо выводить только плавающее число - можно поискать специализированную ф-ю типа ftoa. А если планируется выводить разные вещи на lcd - float,int, строки с разнообразными выравниваниями влево-вправо, может еще что-то - то есть прямой смысл использовать ф-ю sprintf. Да, она отжирает на авр пару килобайт памяти кода, если использована в программе. От количества использований ессно размер отжираемый не зависит.
Так что советую почитать что умеет sprintf и что умеет ftoa и выбрать соответственно своим задачам. В любом случает происходит преобразование числа в строку, а затем уже эту строку (массив char) выводим на LCD.
А, а еще, если памяти жалко - можно написать свою putc, которая выводит один символ на LCD (ее все равно придется писать) и юзать после этого printf. В avr-libc такая возможность точно была.
avr123.nm.ru, вместо того, что бы раскрашивать фломастером слова разным цветом в окошке, вы бы учебник в руки взяли и открыли для себя слово "пунктуация". а то вас трудно понять, что же вы сказать своей писаниной хотите.
Почему размягчается? Объясните уж. Вот сколько уже пишу на Си, всегда встречаются сложные ситуации, потому как в Си основная работа заключаеца в использовании главного преимущества Си - указателей.
Короче, автор, купи книжку Кернигана и Ритчи, прочитай, изучи и все станет понятно. Там всего то страниц 300 гдето. А то идет какоето бессмысленное обсуждение.
Только пользы от этого не будет, потому как человек не сможет отлаживать программы и смотреть лог в консоли. Для этого ему понадобица либо глючный Протеус либо еще какойнить симулятор. А если программировать под ПК, то ничо не нада, только мозгов немного для начала