Фактически так.
Нарисуйте фрагмент экрана из моего рисунка в начале темы.
И впишите в него любую букву по точкам вертикально.
Вы увидите, что буква займет не полные байты а их части.
Но одну букву положим можно и так вывести, но как выводить регулярный текст с произвольным расположением вертикальных строк по ширине экрана?
Покажите расчет адресов.
пересчет изображения на графическом ЖК индикаторе
- Реклама
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пересчет изображения на графическом ЖК индикаторе
Ну вот я накропал в экселе:

Если места символов (по вертикали) постоянны, то я предлагаю каждый символ "железно" разбивать на 2 группы байт (верхняя и нижняя), и потом делать их лог. ИЛИ с содержанием буфера.
Если места символов (по вертикали) постоянны, то я предлагаю каждый символ "железно" разбивать на 2 группы байт (верхняя и нижняя), и потом делать их лог. ИЛИ с содержанием буфера.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- КРАМ
- Друг Кота
- Сообщения: 25359
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: пересчет изображения на графическом ЖК индикаторе
А следующий символ будет сдвинут относительно границы байтных строк дисплея на 2 пиксела, поскольку размер символа 6, а не 8.
Получается, что границы плывут....
Получается, что границы плывут....
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пересчет изображения на графическом ЖК индикаторе
Это я и имел в виду под "выводить железно", т.е. отдельно процедура для первого байта (сдвиг и разбиение на условно 3+5), отдельно для второго (5+1), третьего (6+0) и т.д. Там ведь их меньше 10 помещается.КРАМ писал(а):Получается, что границы плывут....
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- КРАМ
- Друг Кота
- Сообщения: 25359
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: пересчет изображения на графическом ЖК индикаторе
Лучше, если место по вертикали не фиксировано. Текст может иметь разные пробелы или вставки пиктограмм, что ведет к подвижности границ знакоместа внутри занимаемых 16 байт. Именно 16-ти, поскольку 8 из верхней байтной строки и 8 из нижней.
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25359
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: пересчет изображения на графическом ЖК индикаторе
Довольно компактный код пересчета буферной строки 8*64 в любую вертикальную колонку тех же габаритов в общем буфере:
Код: Выделить всё
; вывод из буфера строки в общий буфер (W0 = номер выводимого канала; W2 = номер строки вывода)
out_row:
mul.uu W0, # 26, W0 ; шаг между каналами
mul.uu W2, # 11, W2 ; шаг между строками канала
add W0, W2, W0
add # 6, W0 ; смещение от края экрана
mov # buf_displ, W1
add W0, W1, W1 ; абсолютный адрес нижней первой точки строки
mov # buf_row, W2
mov # 8, W4 ; счетчик строк общего буфера
looprow: mov # 8, W3 ; счетчик колонок общего буфера
loopbyteout: do # 7, eobytein
bclr SR, # C
rlc.b [W2], [W2]
rrc.b [W1], [W1]
eobytein: inc W2, W2
inc W1, W1
sub # 8, W2
dec W3, W3
bra NZ, loopbyteout
add # 124, W1
add # 8, W2
dec W4, W4
bra NZ, looprow
return- КРАМ
- Друг Кота
- Сообщения: 25359
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: пересчет изображения на графическом ЖК индикаторе
Только это не пересчет указателей.
Сами данные переписываются в основной буфер с поворотом.
Отражение точек происходит в бите переноса.
Сами данные переписываются в основной буфер с поворотом.
Отражение точек происходит в бите переноса.



