Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LCD MTC-S16101XFGHSAY
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Pyku_He_oTTyda
Добрый день! В индикаторе не могу заставить работать правые 8 символов.
Из даташита понятно, что правые 8 ячеек имеют адреса с 40Н по 47H, но ни автоинкрементом, ни записью в счетчик АС засветить их не могу.
Однако в эмуляторе с автоинкрементом все 16 светятся. Помогите разобратся с индикатором.
m16
если дисплей ты не сдвигаешь вправо то у правых 8-ми символов адреса будут 8-15
Pyku_He_oTTyda
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычныхsad.gif
Тем более что в VMLAB работает. А вот с этим не могу разобратся...
BVU
Цитата(Pyku_He_oTTyda @ Sep 29 2005, 17:04)
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычныхsad.gif
Тем более что в VMLAB работает. А вот с этим не могу разобратся...
*

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

Посмотрел описание на Ваш индикатор и все стало ясно!
Перепишите программу вывода на индикатор с условием: если знакоместо по которому Вы пишете больше 8-ми, то к адресу необходимо прибавлять 40.
Вот и все дела!!!
Причем эту проверку на выравнивание адреса делайте на самом нижнем уровне, а верхние модули будут работать, как и раньше.
Pyku_He_oTTyda
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
Цитата(BVU @ Sep 29 2005, 19:05)
Цитата(Pyku_He_oTTyda @ Sep 29 2005, 17:04)
Я надеялся на это, как у обычных ЖКИ контроллере HD.
Однако на странице 19 даташита вижу другую раскладку адресов для однострочного дисплея. Видимо он отличается от обычныхsad.gif
Тем более что в VMLAB работает. А вот с этим не могу разобратся...
*

Посмотрел описание на Ваш индикатор и все стало ясно!
Перепишите программу вывода на индикатор с условием: если знакоместо по которому Вы пишете больше 8-ми, то к адресу необходимо прибавлять 40.
Вот и все дела!!!
Причем эту проверку на выравнивание адреса делайте на самом нижнем уровне, а верхние модули будут работать, как и раньше.
*


Прошу прощения за неточность вчера уже торопился домой.
К адресу знакоместа большему 7-ми необходимо прибавлять 32 (40 - 8).
Это все видно в документации на индикатор (стр. 19). Там идут линейно адреса с 0 -> 7, затем с 40 -> 47. Т.е при вводе адреса в индикатор всегда проверяйте это условие:
if(address > 7)address += 32;
на ассемблер думаю сами перепишите...

Удачи!
Pyku_He_oTTyda
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Pyku_He_oTTyda
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Pyku_He_oTTyda
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
Pyku_He_oTTyda
Что то я совсем запутался в алгоритмах передачи команд и данных по 4х битному интерфейсу, взятых с атмел.ру
Не подскажите, где почитать об этом?
BVU
Статей много на эту тему. Сперва изучите вот это:
http://sub.chipdoc.ru/html.cgi/txt/lcd/chi...tart.htm?fid=32
http://schemz.narod.ru/LCD/lcd.htm
И попробуйте написать свои подпрограммы управления индикатором (инициализация, ввод/вывод данных), затем на их основе функции по выводу строки и т.д.
Если Вы это все сделаете, то в дальнейшем никаких проблем возникать не будет при подключении более сложных индикаторов (графический).
Можете конечно воспользоваться 'чужими' библиотеками, но что бы в них что-то изменить или добавить все равно надо досконально разобраться в 'анатомии' их работы.
Pyku_He_oTTyda
Cпасибо! Буду разбиратся со статьями и писать собственную на выходных.
Pyku_He_oTTyda
Спасибо, разобрался. Его нужно было инициализировать как двустрочный.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.