реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> CodeVisionAVR и LCD, вывод значения переменной на LCD
smk
сообщение Oct 26 2006, 20:22
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Подскажите, если не трудно, как вывести значение переменной на LCD. Например, отобразить в десятичном виде результат преобразования ADC? Никак не могу сообразить, понимаю что просто, но ничего не выходит. Подскажите...


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Nixon
сообщение Oct 27 2006, 07:00
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Просто использовать возможности printf(), переписав putchar() для вывода на lcd (не забыть #define _ALTERNATE_PUTCHAR_).


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
Alich
сообщение Oct 27 2006, 08:59
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-01-06
Из: г. Ярославль
Пользователь №: 13 686



Цитата(smk @ Oct 27 2006, 00:22) *
Подскажите, если не трудно, как вывести значение переменной на LCD. Например, отобразить в десятичном виде результат преобразования ADC? Никак не могу сообразить, понимаю что просто, но ничего не выходит. Подскажите...


Можно и printf, но если нет желания ничего переписывать и существуют собственная процедура вывода строки на LCD, то обратите внимение на функцию sprintf, которая полностью аналогична printf за исключением того, что в качестве вывода формирует строку. А строку потом собственными средствами без проблем smile.gif

Если своей функции вывода нет - то послушайте Nixon а.
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 3 2006, 14:13
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Спасибо! Теперь все работает как надо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 8 2006, 08:38
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Вот такой вопрос, может кто знает еак его решить. В CodeVision есть функция вывода строки lcd_putsf(" Hello world! "); Если попробовать выводить буквы кириллицы, то из-за несовпадения кодов на дисплее будут крякозяблики. Приходится русский текст выводить побуквенно с помощю lcd_putchar(0b10100101);//И. Может есть возможность вывода кириллицы с помощю lcd_putsf(" Всем Привет! "); так как это я написал? Это гораздо удобнее было бы.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
vooon
сообщение Nov 9 2006, 13:42
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Нет вывод кирилици так не возможен.
(это верно для всех кроме мелтовских дисплеев)

Но ни кто не запрещает переписать фукцию чтобы переводила smile.gif


Для перевода я пользуюсь этим: http://atmel.ru/Binary/HD-44780.exe
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 9 2006, 14:51
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Спасибо за ответ! Посмотрел прогу. Калькулятор винды тоже это умеет. Эту прогу вообще-то приятно было бы видеть прямо в составе CodeVision или WinAVR, да и в любой другой, в которой текст пишется. Наверно действительно под каждый тип дисплея прийдется функцию переделывать...

Вот взялся бы кто-нибудь из умеющих написать программку - генератор начального кода. Так чтоб после выбора типа МК на экране развернулись все тридцать два настроечных регистра, соответствующих выбранному МК. К каждому биту или группе - пояснение, что он включает-выключает. Калькулятор таймеров как в ICC можно приделать. После установки генерируется текст из строчек с перечнем регистров в виде функции, например init_mk. Было бы очень удобно и совместимо со всеми средами разработки. Вот бы кто взялся?!


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
vooon
сообщение Nov 10 2006, 14:53
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Цитата
Вот взялся бы кто-нибудь из умеющих написать программку - генератор начального кода. Так чтоб после выбора типа МК на экране развернулись все тридцать два настроечных регистра, соответствующих выбранному МК. К каждому биту или группе - пояснение, что он включает-выключает. Калькулятор таймеров как в ICC можно приделать. После установки генерируется текст из строчек с перечнем регистров в виде функции, например init_mk. Было бы очень удобно и совместимо со всеми средами разработки. Вот бы кто взялся?!


Немного поконкретнее что нужно?

Вот моя програмка для рисования символов для 44780:
http://vooon.narod.ru/test/hd/index.html
Дубль: http://nix-06.nm.ru/Programma/hd/hd_js.html
Go to the top of the page
 
+Quote Post
zorromen
сообщение Nov 19 2006, 11:57
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



flash char Decode2Rus[255-192+1]= {

0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,
0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,
0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,
0xAC,0xE2,0xAD,0xAE,0xAD,0xAF,0xB0,0xB1,
0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,
0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE,
0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,
0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7
};

#define _ALTERNATE_PUTCHAR_
void putchar(char c)
{
if(c>=192) lcd_putchar(Decode2Rus[c-192]); else lcd_putchar©;
}

Если посмотреть на код в АСКИИ-Вин то русские буквы идут с 192 до 255 . То просто делаем поправку Decode2Rus.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Nov 19 2006, 15:24
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Если посмотреть на код в АСКИИ-Вин то русские буквы идут с 192 до 255 . То просто делаем поправку Decode2Rus.
[/quote]
Ошибаетесь.Знакогенератор HD47780 не соответствует виндовозному и так просто не получится,т.е
придется писать свою альтернативную фукцию.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
zorromen
сообщение Nov 21 2006, 19:39
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



[quote name='WHALE' date='Nov 19 2006, 15:24' post='177851']
Если посмотреть на код в АСКИИ-Вин то русские буквы идут с 192 до 255 . То просто делаем поправку Decode2Rus.
[/quote]
Ошибаетесь.Знакогенератор HD47780 не соответствует виндовозному и так просто не получится,т.е
придется писать свою альтернативную фукцию.
[/quote]

Нифига Сматри
Вазьмем букву 'Б' её код 193
далее 193-192=1 это в массиве 0xA0 зничит в знакогенераторе в LCD там Б сам пасматри.
пример putchar('Б') все работает...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 17:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01431 секунд с 7
ELECTRONIX ©2004-2016