Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт авг 21, 2014 21:40:46
Serhio
Протеус выдает следующую ошибку
pic16 ADC PC=0x0002. ADC conversion started before "wait" time has expired following previous conversion or channel change.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Ср сен 10, 2014 20:33:06
MisHel64
Господа, а подскажите про HD44780 - 1602.
1) Если русских символов нет в знакогенераторе, то уже никак их туда не записать? Знакогенератор одноразовом ПЗУ прошит?
2) А в современных контролерах по прежнему, только 8 символов можно определить?
3) А можно как-то еще в магазине узнать наличие русских символов? Может маркировку дополнительную производители наносят? Наверно не много не в ту тему, но куда гугль послал...
PS: Про определяемые 8 символов пользователя знаю. Гениальные советы типа "спроси продавца", как бы не интересны.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Думаю, даже проще - ещё на этапе производства масочным методом. Т.е. тупо есть транзистор на кристалле - 0, нету - 1. Разные фотолитографические маски для разных "зашивок" знакогенератора.
MisHel64 писал(а):А в современных контролерах по прежнему, только 8 символов можно определить?
Архитектура контроллера такая. В одном байте можно 128 байт ОЗУ адресовать (память дисплея), + 64 байта ОЗУ (память знакогенератора) + остальное - на всякие управляющие команды.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт сен 11, 2014 15:37:10
slavokhire5
To MisHel64: Допустим, для модели WH1602A/B на наличие кириллицы указывает код CT в конце наименования (например, WH1602A-NGG-CT)
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт сен 12, 2014 01:21:26
MisHel64
slavokhire5 Спасибо, уже хлеб. Будем искать (C)
Чисто из любознательности. Почитав форумы у меня сложилось мнение, что в HD44780 шьют как минимум три таблицы с русскими символами. Одна содержит лишь те которых нет в латинице, другая содержит все символы во второй таблице но в собственном порядке, и есть вариант, где порядок символов совпадает с "виндовой" кодировкой.
Я правильно уловил мысли более других ораторов, и какой именно вариант в блочке имеющий указанный вами маркировки.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт сен 12, 2014 06:07:03
Mishany
Как минимум две страницы с символами, причем если буква к примеру А русская, то она берется с английской кодировки и так со всеми буквами совпадающими в графическом написании, по крайней мере так сделано на дисплеях мэлт.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт сен 12, 2014 06:14:43
urry
все гораздо проще. Перед выдачей анализируется символ - если он из латинской раскладки - выдается как есть.Если это кириллица - код больше 0xC0 - эта величина отнимается и берется код из своего массива. Я хз сколько лет пользуюсь библиотекой Алекса например http://eldigi.ru/articles/chastotomer_n ... d_displeem
Все индикаторы с кириллицей ведут себя одинаково, нет никаких 3 вариантов.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 04, 2014 17:10:06
skeef
Много рыл, но так и не нашел ответа на 3 простых вопроса:
1. как инвертировать символ? Т.е. есть символ А- белый фон, черные линии. Как сделать наоборот - черный фон, белая линия?
2. как заставить символ "моргать" способом "исчез-появился" и способом инвертирования. Есть команда для курсора. Есть ли для символа?
3. как правильно (или можно ли) записывать графику своих символов без инициализации, в динамике. Ну чтобы обойти ограничение в 8 символов.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 04, 2014 17:47:49
WiseLord
1. Только сгенерировать инвертированный символ как пользовательский.
2. Аналогичным способом - через пользовательский символ. Отдельной инверсии не предусмотрено.
3. Никак. Пользовательский символ - это всего лишь своего рода ссылка-указатель на область в CGRAM. Поменяется информация там - поменяется она и везде на экране, где выведен этот символ.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 04, 2014 18:49:04
skeef
WiseLord писал(а):
3. Никак. Пользовательский символ - это всего лишь своего рода ссылка-указатель на область в CGRAM. Поменяется информация там - поменяется она и везде на экране, где выведен этот символ.
Получается, что единственный вариант обойти ограничение это каждый раз непосредственно перед выводом записывать новый символ в регистры. По идее такой вариант реализован здесь: http://asis-kbr.ru/forum/viewtopic.php?f=13&t=139
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 04, 2014 19:05:47
WiseLord
Да. Предложенный вариант хоть как-то может уменьшить значимость проблемы. Но полностью её не решит. Одновременно на экране не может отображаться больше восьми различных пользовательских символов.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 04, 2014 19:48:53
skeef
Остается большой вопрос сколько циклов записи выдержит "флешка" индикатора
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 04, 2014 19:53:32
Alexeyslav
Это не флешка. а самая что ни на есть static RAM. Выключил питание - символы пропали. записывать можно до бесконечности.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб окт 11, 2014 16:41:37
nirq
Если авторы дисплея (почему вы все его называете "индикатор"? индикатором была бы зелёная лампочка, разноцветная лампочка, набор из надписей "on/off" либо символов "low fuel, check engine"... а тут произвольный текст или даже рисунок) предусмотрели в нём возможность видоизменения курсора - то совершенно никак не связано с обязанностью применять такой дисплей в исключительно "терминальном" режиме.
И даже совершенно наоборот: "терминальный" режим как таковой, с пошаговым курсором и одиночно-посимвольным "печатанием" слева направо - целесообразен... я даже затрудняюсь придумать хоть один реальный пример, когда он был бы целесообразен.
В раме организуется буфер, 8 символов * 2 строки = 16 байт.
Из этого буфера периодически обновляется весь дисплей.
Содержимое же буфера в раме меняется уже когда угодно и как угодно. Хоть сразу три курсора по два символа в разных местах и разными стилями, с разной частотой моргания...
А "проблема" с инвертацией надуманна. Пуговицы перламутровые.
Переопределяемые символы в HD44780
Добавлено: Пн окт 20, 2014 11:32:53
ksardas_90
Здравствуйте. Осваиваю работу с мк STM32 и в частности управление дисплеем WH1602A. Изучив некоторые статьи и документацию к нему смог запустить, выводить текст и настроить бегущую строку, но завели в тупик попытки вывести на экран пользовательский символ. Мне кажется я не совсем понял алгоритм их генерации и вывода на экран.
Как я понял: 1) командой установки адреса CGRAM выбрать какой из 8и символов будем изменять
0 1 ASG ASG ASG ASG ASG ASG (не совсем понятно в каком полубайте адрес писать)
2)Теперь нужно передать в режиме данных 8 байт которые и будут нашим новым символом (т.е. RS=1 DB7=1 DB4-DB0 = строка рисунка где 1 это активный пиксель, DB5 и DB6 - не значащие разряды) ?
и так восемь раз
3)После того как все 8 байт записались необходимо вернуться в режим работы с DDRAM (Это из статьи вычитал, хотя в руководстве такого не нашел)
Вот чего то по нулям, подскажите и поправьте пожалуйста алгоритм, если кто рисовал пользовательские символы на таких дисплеях
Re: Переопределяемые символы в HD44780
Добавлено: Пн окт 20, 2014 13:29:46
koyodza
1. В индикаторе CGRAM имеет 64 ячейки, по 8 на каждый пользовательский символ. Символ с кодом 00 занимает ячейки с адресами 0..7, символ с кодом 01 ячейки с адресами 8..15 и т.д.
Символы с кодами 08..0F дублируют соответствующие символы с кодами 00..07. Обычно я стараюсь не использовать символ с кодом 00, вместо него использую 08, но это не относится напрямую к данному вопросу.
Соответственно чтобы задать свой вид символа с кодом 07 нужно переписать ячейки CGRAM с адресами 56..63.
Обычно я переписываю по одной ячейке за раз, поэтому указатель на CGRAM меняю для каждой ячейки, но это связано с моей собственной довольно сложной организацией вывода на LCD (сделано для совместимости с менеджером задач и чтобы избежать блокирующих ожиданий готовности), но Вы можете попробовать сделать это иначе.
Ваш вопрос "не совсем понятно в каком полубайте адрес писать" не понял, сформулируйте ещё раз.
2. Незначащими являются три бита DB5..DB7, поскольку в одной строке 5 пикселей. Всегда записываю 0 в эти биты, что будет если записать 1 не знаю. Если будет нечего делать - может проверю, но нужно учитывать, что индикаторы от разных производителей могут работать немного по-разному.
3. Да, просто снова делаете Set DDRAM addr, точно так же как в случаях, когда хотите начать вывод символов с произвольного места.
Re: Переопределяемые символы в HD44780
Добавлено: Пн окт 20, 2014 22:14:18
CyberVad
Я делаю так:
1) Команда "буду загружать свои символы" (0x40+адрес если не с нулевого)
2) Гружу сколько надо
Всё
Подробнее: вопреки логике один байт описывает не один столбец символа, а одну строку. И хоть символ 5х7, а передать надо 8 байтов: 7 байтов значащих (первый описывает верхнюю строку, седьмой нижнюю), а восьмой произвольный. В каждом байте значат только биты 4-0, старшие 3 любые. Для единообразия я их делаю нулевыми.
Вот, например, пара символов:
lcdcmd(0x40); //Начинаем с символа по адресу 0