AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
06.06.2020, 14:13
|
|
Частый гость
Регистрация: 26.04.2017
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
библиотека для LCD hd44780
Наткнулся недавно на библиотеку с возможностью использования кириллицы для "русскоговорящих" дисплеев на базе HD44780. А можно ли из нее "выкусить" функцию конвертирования в отдельный модуль, чтобы потом использовать совместно с другими библиотеками?
Попытался сделать сам, но что-то не так сделал (или не доделал).
#include ‹avr/pgmspace.h›
static uint8_t lcd_rus(uint8_t);
//Таблица перекодировки в русские символы.
static const unsigned char PROGMEM convert_HD44780[64] =
{
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
};
static uint8_t lcd_rus(uint8_t c)
{
if (c › 191)
{
c -=192;
c= pgm_read_byte(&convert_HD44780[c]);
}
return c;
}
Компилируется с варнингом- Warning 'lcd_rus' defined but not used [-Wunused-function]
Ну и если делать так
const uint8_t PROGMEM text_1[]="Мир не без доб-";
const uint8_t PROGMEM text_2[]="рых людей!!!";
1
2
copy_string_to_lcd(text_1, 0, 0);
copy_string_to_lcd(text_2, 0, 1);
то на дисплее крякозябры.
Проект с протеусом прилагаю.
Последний раз редактировалось gogaze; 06.06.2020 в 14:21.
|
|
|
|
06.06.2020, 15:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
|
Re: библиотека для LCD hd44780
Сообщение от gogaze
|
библиотеку с возможностью использования кириллицы для "русскоговорящих" дисплеев на базе HD44780
|
так дисплей русифицирован - зачем его "накачивать" русификацией? может речь о доп. 8 пользовательских символах? и ДШ на HD44780 смотрели - там есть коды символов лат/кир/цифр/спец
кстати - бросайте протэзы, берите железо, практика в реале превыше всего (индикаторы, зачастую, отличаются от моделей и ведут себя иначе)
|
|
|
|
06.06.2020, 15:53
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,944 раз(а) в 5,991 сообщении(ях)
|
Re: библиотека для LCD hd44780
Сообщение от gogaze
|
на дисплее крякозябры.
|
И Вы нарисовали кракозебров. Что - нечитаемость текста программы ни на что не подвигла?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
07.06.2020, 00:59
|
|
Частый гость
Регистрация: 26.04.2017
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: библиотека для LCD hd44780
Сообщение от jump
|
так дисплей русифицирован - зачем его "накачивать" русификацией? может речь о доп. 8 пользовательских символах?
|
Вы меня немного не правильно поняли. Дисплей с кириллицей, просто используя эту библиотеку можно при написании кода переключиться на русскую раскладку, написать
const uint8_t PROGMEM text_1[]="ГубоШлеп"; и на дисплее будет то же самое. Мне показалось это удобным. Ну я решил попробовать вынести эту функцию в отдельный модуль. О проблемах я написал сразу в первом посте.
Ссылка на топик автора библиотеки http://we.easyelectronics.ru/lcd_gfx...#comment122672
|
|
|
|
07.06.2020, 01:16
|
|
Частый гость
Регистрация: 26.04.2017
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: библиотека для LCD hd44780
P.S. В общем, сейчас пока такая проблема: не знаю как правильно вызвать функцию lcd_rus
чтобы победить Warning 'lcd_rus' defined but not used [-Wunused-function]
У автора кроме этого static uint8_t lcd_rus(uint8_t); ничего не нашел.
(По моей проблеме понятно, какой я "крутой программист-АВР-щик". Отнеситесь к этому с пониманием)
|
|
|
|
07.06.2020, 04:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
|
Re: библиотека для LCD hd44780
Сообщение от gogaze
|
... Дисплей с кириллицей, просто используя эту библиотеку можно при написании кода переключиться на русскую раскладку, написать
const uint8_t PROGMEM text_1[]="ГубоШлеп"; и на дисплее будет то же самое. ...
|
Дисплей то с кириллицей....однако вам необходимо разобраться с кодовыми таблицами, в частности какая русская таблица применена в вашем дисплее конкретно и какой тип кодировки использует ваш редактор. Боюсь совпадений будет мало - в основном цифры не заденет.
__________________
Решил посоветовать, да забыл что...
|
|
|
|
07.06.2020, 04:35
|
|
Частый гость
Регистрация: 26.04.2017
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: библиотека для LCD hd44780
Дисплей с кириллицей! Вот результат на скриншоте.
Ссылку на страничку автора я давал. Мне из всей его библиотеки нужна только функция ввода с клавиатуры русского текста. Вытащить ее в отдельный модуль для использования с другими библиотеками.
В атмел студии набираю текст как обычно: русская раскладка и т.д.
const uint8_t PROGMEM text_1[]="Мир не без доб-";
const uint8_t PROGMEM text_2[]="рых людей!!!";
Последний раз редактировалось gogaze; 07.06.2020 в 04:41.
|
|
|
|
07.06.2020, 13:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
|
Re: библиотека для LCD hd44780
__________________
Решил посоветовать, да забыл что...
|
|
|
|
09.06.2020, 13:32
|
|
Частый гость
Регистрация: 26.04.2017
Сообщений: 17
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: библиотека для LCD hd44780
Сообщение от anatol378
|
С этим знаком
|
Да кто же с ЭТИМ не знаком!??
Модераторы за рассылку рекламы не ругают?
|
|
|
|
09.06.2020, 14:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
|
Re: библиотека для LCD hd44780
Я не рекламу гнал а поисковую строку в гугле:-
8-битные кодировки: ASCII, КОИ-8R и CP1251
__________________
Решил посоветовать, да забыл что...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:03.
|
|