Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Вс окт 15, 2017 09:38:01
А вот еще вопрос на засыпку: возможно ли вывести несколько курсоров? Или подчеркнуть строку?
Нет. О таких возможностях не знаю. Аппаратно они не предусмотрены.
Моргать символом не обязательно - рядом с выбранным пунктом дорисовывай, например, стрелочку, и пусть она все время горит, пока не выберешь другой пункт.
Хочешь красоту - бери графический дисплей. Геморрою конечно побольше(если пишешь как я - на ассемблере), но зато куча возможностей!
Хотя мне уже хочется на цветные TFT перейти
Совершенству нет предела!
Вс окт 15, 2017 12:17:57
Хотя мне уже хочется на цветные TFT перейти
Совершенству нет предела!
Да тоже слюну пускаю
Спасибо
Вс окт 15, 2017 17:51:20
На али есть цветные дешёвые дисплеи с дип пинами, 320х240 и spi интерфейсом. Там всё достаточно просто.
Ср окт 25, 2017 18:28:12
Котаны, кто-нибудь сталкивался с таким дисплеем?
Выковырнул из какого-то телефона. Распиновка - Gnd, 3v3, RS, E, RW, D7, D6, D5, D4. Т.е. стандартная для HD44780 (только нет управления контрастности)
Но как подобраться к двум верхним строчкам - не пойму, хоть убей
Да и на нижней строке нулевая позиция - на пятом столбце (см. рис)
Есть мысли, как победить его полностью?
Ср окт 25, 2017 20:08:21
Записать что-то подлиннее, в идеале - во всю память (128 ячеек). Есть вероятность, что другие позиции могут соответствовать каким-то из адресов.
Также стоит проверить область пользовательских символов -возможно, она тоже как-то отображается на экран.
Последний раз редактировалось
WiseLord Чт окт 26, 2017 19:10:01, всего редактировалось 1 раз.
Чт окт 26, 2017 18:31:33
Спасибо тебе, добрый человек, я его победил.
Управляются верхние строки именно пользовательскими символами, и именно за пределами основных адресов, с 40 по 47
Всё в цвет)
Чт окт 26, 2017 19:12:05
А мне вот чисто интересно. Один пользовательский символ - это 8 байтов. Получается, что один символ должен отображаться на несколько семисегментных мест. Верно?
Чт окт 26, 2017 20:01:49
А мне вот чисто интересно. Один пользовательский символ - это 8 байтов. Получается, что один символ должен отображаться на несколько семисегментных мест. Верно?
Нет. символ всегда отображается на 1 знакоместо(будь оно из 5х8 точек или из 7 сегментов). как происходит "занятие" - решает контроллер дисплея.
Мы же, общаясь с дисплеем, говорим лишь из какого места графической памяти считать этот символ. т.е.8 байт о которых вы говорите - это адрес в памяти.
Сам символ описывается большим количеством байт(по идее 8 байт для знакоместа 5х8 точек).
Чт окт 26, 2017 20:08:19
Нет, там мутная схема
Пользовательский символ является символом только в пределах стандартного куска памяти, от 0 до 39
когда его загружаешь по адресу 44-47 - это уже не символ, а коды для семисегментных индикаторов. Семь байтов символа, загруженные по адресу 44 отвечают за первые пять семисегментников второй строки, 45 - за вторые пять и т.д. А восьмой байт - за часть сегментов верхней строки.
День убил, чтоб методом перебора всё вычислить)
Чт окт 26, 2017 22:45:39
Ну, я как-то так и предполагал. Обычный символ состоит из 40 точек, хотя пользовательский описывается 64-мя точками (8 байтами). Логичнее всего было предположить, что такой пользовательский символ, будучи записан в определённый адрес, "размажется" по нескольким семисегментным цифрам. Технически возможно - по восьми, как на самом деле - уже другое дело.
Feklistov_as: Ваше предположение практически недопустимо. Если бы пользовательский символ (весь, целиком, все его 8 байтов) отображался лишь на один семисегментный разряд, а не на несколько сразу, было бы невозможно, например, вывести все цифры от 0 до 9.
64 байта пользовательских символов могут либо обеспечить до восьми "обычных" знакомест, либо до 64 семисегментников (вкупе с точкой).
Кстати, как я понял, коды 40-43 - это те самые первые три "графических" символа, а уже дальше пошло "размазывание" по сегментам?
Чт окт 26, 2017 22:55:47
Ваше предположение практически недопустимо.
У меня же не было на тот момент информации о ваших опытах
День убил, чтоб методом перебора всё вычислить)
Поэтому я и говорил, как это происходит в обычном серийном дисплее, а не в выдранном из телефона.
Чт окт 26, 2017 22:58:58
Ох, чувствую, придётся товарищу над #define-ами помучиться, чтобы потом можно было красиво и просто в коде цифры выводить.
Пт окт 27, 2017 10:57:06
WiseLord, 40-43 - вы имели в виду адреса DDRAM?
Это адреса первых четырёх знакомест на дисплее, только они выводятся в зеркальном отображении
в данном случае пользовательский символ "размазывается" по пяти семисегментным цифрам + восьмой байт цепляет несколько сегментов верхней строки
символ 13, 8, 23, 15, 3, 30, 13, 0 отправлен в ячейку 44 DDRAM
я его пока мучаю через LPT порт, с компа. Пока до #define не дошло)
Пт окт 27, 2017 12:18:47
Получается, соответствие обычного символа тому, что на экране - что-то вроде этого:
То есть, вместо пяти точек по горизонтали внутри символа мы имеет пять сегментов рядом. Остальные 7 рядов проходятся по другим сегментам. Притом, ряды 0..6 соответствуют сегментам d-e-c-g-f-b-a (снизу вверх справа налево по символу), а ряд 7 затрагивает что-то выше
Вс окт 29, 2017 09:49:09
Именно такая картинка получается, если этот символ отправить в ячейку 0 DDRAM)
Ряд 7 затрагивает 5 сегментов выше. В первом случае - трубку, динамик, сегмент b, сегмент c, сегменты a, g, d, e одновременно.
В случае с адресом DDRAM 47 чуть по-другому. Там остаётся всего один семисегментник вместо пяти во втором ряду. Поэтому все ряды символа затрагивают что-то выше)
Пт ноя 03, 2017 14:44:44
Подскажите, имеет ли значение как вводить в дисплей символы: по порядку двигая курсор последовательно слева направо, или можно в хаотичном порядке ставить курсор куда хочется? Сейчас у меня вывод в совершенно хаотичном порядке, вначале выводится 10 символ второй строки, потом первый первой, потом четвертый второй, и т.д. Работа полностью устраивает, никаких мерцаний и прочих артефактов нет. Но вообще это нормально для дисплея, переделывать не надо?
Пт ноя 03, 2017 14:51:42
Не зная что вам требуется от готового изделия и насколько быстро нужно обновлять некие знакоместа - ответить на ваш вопрос не реально.
Пт ноя 03, 2017 14:55:15
Не зная что вам требуется от готового изделия и насколько быстро нужно обновлять некие знакоместа
Ничего не тербуется - я же говорю, все работает прекрасно. Скорости не нужно. Весь дисплей 1 раз в пол секунды обновляется. Иначе ничего не успеешь увидеть
Вопрос в другом: контроллеру дисплея без разницы в каком порядке выводить символы, или разница есть и оптимизация может быть полезна, например снижением потребления или повышения отказоустойчивости?
Чисто с человеческой точки зрения не всегда удобно писать вывод символов последовательно, например когда есть элементы псевдографики.
Пт ноя 03, 2017 15:00:36
Лично вам (как автору программы), наверное, удобнее было бы сгруппировать "пакеты знакомест", что бы не не постоянно "долбить команду" выбор адреса.
В любом случае, выбор за вами, поскольку только вы видите работу вашего изделия и можете оценить время, затрачиваемое на обновление информации на ЖКИ.
----
P.S.
Что касается контроллера дисплея - что вы ему сказали, то он и выполнил (за некоторое время).
Пт ноя 03, 2017 15:05:30
Спасибо.
Но время в моем случае не имеет значения. Его сколько хочешь.
А кроме времени других критериев нет? Ну например дисплей тупо не перегреется если дергать выбор адреса непрерывно то туда то сюда?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.