Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CodeVisionAVR и LCD
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
smk
Подскажите, если не трудно, как вывести значение переменной на LCD. Например, отобразить в десятичном виде результат преобразования ADC? Никак не могу сообразить, понимаю что просто, но ничего не выходит. Подскажите...
Nixon
Просто использовать возможности printf(), переписав putchar() для вывода на lcd (не забыть #define _ALTERNATE_PUTCHAR_).
Alich
Цитата(smk @ Oct 27 2006, 00:22) *
Подскажите, если не трудно, как вывести значение переменной на LCD. Например, отобразить в десятичном виде результат преобразования ADC? Никак не могу сообразить, понимаю что просто, но ничего не выходит. Подскажите...


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

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

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


Для перевода я пользуюсь этим: http://atmel.ru/Binary/HD-44780.exe
smk
Спасибо за ответ! Посмотрел прогу. Калькулятор винды тоже это умеет. Эту прогу вообще-то приятно было бы видеть прямо в составе CodeVision или WinAVR, да и в любой другой, в которой текст пишется. Наверно действительно под каждый тип дисплея прийдется функцию переделывать...

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


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

Вот моя програмка для рисования символов для 44780:
http://vooon.narod.ru/test/hd/index.html
Дубль: http://nix-06.nm.ru/Programma/hd/hd_js.html
zorromen
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.
WHALE
Если посмотреть на код в АСКИИ-Вин то русские буквы идут с 192 до 255 . То просто делаем поправку Decode2Rus.
[/quote]
Ошибаетесь.Знакогенератор HD47780 не соответствует виндовозному и так просто не получится,т.е
придется писать свою альтернативную фукцию.
zorromen
[quote name='WHALE' date='Nov 19 2006, 15:24' post='177851']
Если посмотреть на код в АСКИИ-Вин то русские буквы идут с 192 до 255 . То просто делаем поправку Decode2Rus.
[/quote]
Ошибаетесь.Знакогенератор HD47780 не соответствует виндовозному и так просто не получится,т.е
придется писать свою альтернативную фукцию.
[/quote]

Нифига Сматри
Вазьмем букву 'Б' её код 193
далее 193-192=1 это в массиве 0xA0 зничит в знакогенераторе в LCD там Б сам пасматри.
пример putchar('Б') все работает...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.