Полная версия этой страницы:
LCD MTC-S16101XFGHSAY
Pyku_He_oTTyda
Sep 29 2005, 11:30
Добрый день! В индикаторе не могу заставить работать правые 8 символов.
Из даташита понятно, что правые 8 ячеек имеют адреса с 40Н по 47H, но ни автоинкрементом, ни записью в счетчик АС засветить их не могу.
Однако в эмуляторе с автоинкрементом все 16 светятся. Помогите разобратся с индикатором.
если дисплей ты не сдвигаешь вправо то у правых 8-ми символов адреса будут 8-15
Pyku_He_oTTyda
Sep 29 2005, 13:04
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычных

Тем более что в VMLAB работает. А вот с этим не могу разобратся...
Цитата(Pyku_He_oTTyda @ Sep 29 2005, 17:04)
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычных

Тем более что в VMLAB работает. А вот с этим не могу разобратся...
Попробуйте просто - написать тестовую программу последовательного заполнения, начиная с первого знакоместа индикатора, только разными символами, хотябы в алфавитной последовательности, что бы идентификация при проверке была однозначной. И протестируйте что и куда пишеться на живом индикаторе.
Так же обратите внимание на свои подпрограммы вывода на индикатор, правильно ли идет индексация и вообще куда Вы реально пытаетесь писать...
Навернака ошибка у Вас в коде и запись происходит не по тем адресам!
Pyku_He_oTTyda
Sep 29 2005, 14:35
так и делал, выводил по порядку символы. Первые 8 без проблем.
Остальных просто не видно.
Применялся автоматический инкремент и последовательный вывод 16 символов
Цитата(Pyku_He_oTTyda @ Sep 29 2005, 17:04)
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычных

Тем более что в VMLAB работает. А вот с этим не могу разобратся...
Посмотрел описание на Ваш индикатор и все стало ясно!
Перепишите программу вывода на индикатор с условием: если знакоместо по которому Вы пишете больше 8-ми, то к адресу необходимо прибавлять 40.
Вот и все дела!!!
Причем эту проверку на выравнивание адреса делайте на самом нижнем уровне, а верхние модули будут работать, как и раньше.
Pyku_He_oTTyda
Sep 30 2005, 04:53
text:
;ldi r25,$00
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$02
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$04
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$06
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$40
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$42
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$44
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
;ldi r25,$46
;rcall icom_2313
;rcall del
ldi r25,97
rcall idat_2313
rcall del
ret
вот такой кусочек у меня для теста. Первую половину выводит через одну "а", как и задумано, а вот во второй - пусто
Цитата(BVU @ Sep 29 2005, 19:05)
Цитата(Pyku_He_oTTyda @ Sep 29 2005, 17:04)
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычных

Тем более что в VMLAB работает. А вот с этим не могу разобратся...
Посмотрел описание на Ваш индикатор и все стало ясно!
Перепишите программу вывода на индикатор с условием: если знакоместо по которому Вы пишете больше 8-ми, то к адресу необходимо прибавлять 40.
Вот и все дела!!!
Причем эту проверку на выравнивание адреса делайте на самом нижнем уровне, а верхние модули будут работать, как и раньше.
Прошу прощения за неточность вчера уже торопился домой.
К адресу знакоместа большему 7-ми необходимо прибавлять 32 (40 - 8).
Это все видно в документации на индикатор (стр. 19). Там идут линейно адреса с 0 -> 7, затем с 40 -> 47. Т.е при вводе адреса в индикатор всегда проверяйте это условие:
if(address > 7)address += 32;
на ассемблер думаю сами перепишите...
Удачи!
Pyku_He_oTTyda
Sep 30 2005, 10:03
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Pyku_He_oTTyda
Sep 30 2005, 10:04
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Pyku_He_oTTyda
Sep 30 2005, 10:04
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Pyku_He_oTTyda
Sep 30 2005, 10:05
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Статей много на эту тему. Сперва изучите вот это:
http://sub.chipdoc.ru/html.cgi/txt/lcd/chi...tart.htm?fid=32http://schemz.narod.ru/LCD/lcd.htmИ попробуйте написать свои подпрограммы управления индикатором (инициализация, ввод/вывод данных), затем на их основе функции по выводу строки и т.д.
Если Вы это все сделаете, то в дальнейшем никаких проблем возникать не будет при подключении более сложных индикаторов (графический).
Можете конечно воспользоваться 'чужими' библиотеками, но что бы в них что-то изменить или добавить все равно надо досконально разобраться в 'анатомии' их работы.
Pyku_He_oTTyda
Sep 30 2005, 11:58
Cпасибо! Буду разбиратся со статьями и писать собственную на выходных.
Pyku_He_oTTyda
Oct 3 2005, 06:37
Спасибо, разобрался. Его нужно было инициализировать как двустрочный.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.