имеется устройство отображения инфо.
жк-дисплей сегментный (производитель неизвестен заказной)
для управления этим жк-дисплеем используется контроллер lc75874.
с управлением и выводом на дисплей инфы разобрался (вызвонил каждый сегмент).
задача: нужно данные которые приходили на этот контроллер преобразовать легко читаемый формат.
допустим 1=31h для вывода на другой индикатор(например на чипе HD44780)
вот к примеру чтобы на дисплее получить символ "В" нужно отправить на контроллер следующую посылку: 00000101 01110010 00010000
общая длина информационного слова без служебных команд 264 бита
посоветуйте способы преобразования
Я с дисплеем от панели магнитолы на контроллере lc7582 делал так: разбил всю посылку на группы от 3 до 8 бит, под каждую группу свой байт. Там где 7-сегментники подогнал чтоб на каждый байт приходился один разряд. Всякие иконки и т.п. получились как получились. Потом выводил все биты последовательно из каждой группы. Не оптимально, зато работает.
Примерно так:
спасибо за ответ.
но в вашем примере вы управляете нестандартным индикатором , а я хочу посылку данных которая шла на контроллер управления нестандартным индикатором перевести в посылку для более распространённых индиков.
в моём случае одно знакоместо может располагаться в двух полубайтах и одном байте вот к примеру
00000101 01110010 00010000
---- ---------- -----
ipkin писал(а):я хочу посылку данных которая шла на контроллер управления нестандартным индикатором перевести в посылку для более распространённых индиков...
А смысл? Проще свой драйвер написать.
...одно знакоместо состоит из 14-ти сегментов
Тогда не используемые полубайты в топку, остается два байта, которыми кодировать символы. Получится таблица символов из энного количества 16-битных слов. ими кодировать изображения символов.
А подпрограмма-драйвер будет коды символов переводить в эти 16-битные коды, пихать их в нужные места буфера (из 264 бит = 33 байта), а потом весь буфер загонять в контроллер.
А ваше деление посылки для контроллера на байты весьма условно. Что мешает загнать просто 4 бита, тогда код символа выровняется на 2 байта, а с двумя байтами проще работать.
Я разбирался так: сделал табличку соответствия каждого бита в посылке своему сегменту/иконке, проверил где граница группы сегментов каждого разряда (цифры) индикатора. и исходя из этого пропускал где надо биты а дальше гнал байты, потом снова пропускал где надо и так все 264 бита
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης