|
Согласование переменных разных типов |
|
|
|
 |
Ответов
|
Feb 4 2010, 08:54
|

Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 12-01-09
Из: Minsk (BY)
Пользователь №: 43 259

|
Цитата(Палыч @ Feb 4 2010, 09:44)  Вам - что, нужно получить последовательность символов, соответствующих значению счетчика? Тогда - функция sprintf. Ну, и поместить эту последовательность в переменную массив char'ов... Как-то так: Код uint16_t Cnt; char Array[10]; sprintf(Array, "%d", Cnt); Я хотел взять некоторое значение, например 125,3876, добавить к нему текст (в а конкретно "MHz"), и всё это отправить в lcd_putdata() в соответствующую строку дисплея (запись в дисплей у меня реализована, выбор строк тоже). Вот функция записи в дисплей: Код void lcd_putchar(char data) { LCD_CTL |= LCD_RS; //Включаем режим обработки данных дисплеем (если бит инвертирован, то - обработка инструкций) LCD_PORT = data; lcd_strobe(); LCD_CTL &= ~(LCD_RS|LCD_RW); } void lcd_putdata(uint8_t line, char* data) { lcd_select_addr(line); while(*data) { lcd_busy(); lcd_putchar(*data++); } } int main(void) { /// lcd_init(); lcd_putdata(1, "1234567890ABCDEF"); lcd_putdata(2, "GHIJKLMNOPQRSTUV"); lcd_putdata(3, "WXYZ!@#$%^&*()_+"); /// ..... }
|
|
|
|
|
Feb 4 2010, 09:05
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(GoodNews @ Feb 4 2010, 11:54)  Я хотел взять некоторое значение, например 125,3876, добавить к нему текст (в а конкретно "MHz"), и всё это отправить в lcd_putdata() в соответствующую строку дисплея (запись в дисплей у меня реализована, выбор строк тоже). Ну, так и воспользуйтесь функцией sprintf - это самый простой, но, правда, и самый затратный по памяти способ. Правда, я не понял как Вы из целого значения желаете получить "125,3876"? Если в целой переменной у Вас храниться частота в килогерцах, то более 65535 поместить в неё не удастся... PS. Для переменной типа uint_t нужно использовать sprintf(Array, "% u", Cnt);
|
|
|
|
|
Feb 4 2010, 09:20
|

Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 12-01-09
Из: Minsk (BY)
Пользователь №: 43 259

|
Цитата(Палыч @ Feb 4 2010, 11:05)  Ну, так и воспользуйтесь функцией sprintf - это самый простой, но, правда, и самый затратный по памяти способ. Правда, я не понял как Вы из целого значения желаете получить "125,3876"? Если в целой переменной у Вас храниться частота в килогерцах, то более 65535 поместить в неё не удастся...
PS. Для переменной типа uint_t нужно использовать sprintf(Array, "%u", Cnt); Тут скорее надо float, я не подумал как-то. По памяти - я отрабатываю каждый модуль отдельно (LCD, kbd ...), а потом всё будет собрано для mega128.
|
|
|
|
Сообщений в этой теме
GoodNews Согласование переменных разных типов Feb 3 2010, 22:22 volodya Цитата(GoodNews @ Feb 4 2010, 00:22) Если... Feb 4 2010, 06:36    Палыч Цитата(GoodNews @ Feb 4 2010, 12:20) Тут ... Feb 4 2010, 09:52     GoodNews Цитата(rezident @ Feb 4 2010, 15:18) Да, ... Feb 4 2010, 16:12 GoodNews Решил попробовать использовать такой вариант кода ... Feb 5 2010, 12:09 Палыч Цитата(GoodNews @ Feb 5 2010, 15:09) Поче... Feb 5 2010, 13:31  GoodNews Цитата(Палыч @ Feb 5 2010, 15:27) Функция... Feb 5 2010, 14:02 ukpyr http://www.avrfreaks.net/index.php?name=PN...;high... Feb 5 2010, 17:17 GoodNews Цитата(ukpyr @ Feb 5 2010, 19:17) http://... Feb 5 2010, 17:48 ukpyr ЦитатаПроблема в sprintf(Str, "%4.6fKHz... Feb 5 2010, 19:06 GoodNews Цитата(ukpyr @ Feb 5 2010, 21:06) а что в... Feb 5 2010, 19:35 GoodNews На данный момент решён вопрос с отображение значен... Feb 6 2010, 17:29 GoodNews Вариант #2. В таком виде - работает. Если раскомме... Feb 7 2010, 12:30 ReAl Если уж использовать в WinAVR printf, то тогда так... Feb 7 2010, 13:16 GoodNews Цитата(ReAl @ Feb 7 2010, 15:16) Если уж ... Feb 7 2010, 15:49  ReAl Цитата(GoodNews @ Feb 7 2010, 17:49) Собс... Feb 7 2010, 17:05   GoodNews Цитата(ReAl @ Feb 7 2010, 19:05) Да это я... Feb 7 2010, 17:51    ReAl Цитата(GoodNews @ Feb 7 2010, 19:51) Ну т... Feb 14 2010, 09:52 XVR Пока видна 1 ошибка - sizeof(buf) в hzToStr и main... Feb 8 2010, 11:01 GoodNews Цитата(XVR @ Feb 8 2010, 13:01) Пока видн... Feb 8 2010, 16:37 GoodNews 2ReAl:
понятно. т.е. размерность массива buf вычис... Feb 21 2010, 18:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|