![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
Доброго времени!
решил вот разобраться с LCD дисплеем. купил wh1601a у которого 1х16 символов, прицепил к ATmega8 и заюзал библиотеку lcd.h в CodeVisionAVR, как сказано тут . но чёт даже инициализация не проходит. то есть экран чёрные квадраты не выдаёт. отмечу, что библиотечка эта работает в 4х битовом режиме, а не 8ми, как описано в большинстве мануалов. вот код
в архиве проект, ДШ и схемка. подскажите пожалуйста, где я туплю. у меня два предположения - либо мой LCD не совместим с hd44780 дисплеями и я его спалил... либо скрепил что-то неправильно... например, V0 у меня напрямую +5В подключён... но там вроде как до 7и можно... и квадраты уж должны быть по-любому.. Это сообщение отредактировал(а) CompWorm - 15.4.2010, 19:35 Присоединённый файл ( Кол-во скачиваний: 22 )
LCD_4bit.rar 513,35 Kb |
|||
|
||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: 4 Всего: 7 |
насколько я помню, то черные квадраты выводятся пока не проинициализирован дисплей.
а инициализацию лучше самому написать. там есть нюансы с таймингами у некоторых дисплеев. -------------------- What DA F...??? |
|||
|
||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
smalcom, спасибо за ответ!
хххмм... да, действительно я читал, что часто проблема в задержке... но разве lcd_init() не имеет внутренней задержки? к тому же я поставил дополнитеольно delay_ms(100); он хоть на 100 мс должен чернеть... а ннет! |
|||
|
||||
| smalcom |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: 4 Всего: 7 |
вот-вот, мне както попался LCD-модуль который хотел четких задержек и решение "ааа, чем медленее тем надёжней" там не сработало. в итоге мне пришлось четко выдержать все тайминги из доки.
Посему лучше просмотреть еще рах доку на LCD-модуль. И вот что там кодвижн сгенерил...
это вроде как задержка. уж больно маловата она. зы. если надо то выложу код модуля, но я для 8-ми битной шины писал. -----
а вот перед инициализацией LCD желательно выждать время Это сообщение отредактировал(а) smalcom - 15.4.2010, 23:18 -------------------- What DA F...??? |
||||
|
|||||
| CompWorm |
|
||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
smalcom, спасибо за идею!
по поводу чётких задержек я ничего не могу сказать в отношении своего дисплея, так как ДШ по нему наредкость бестолковый. я решил проверить ваше предположение о задержке до вызова инициализации, поморгав лампочкой. в случае успеха, lcd_init(16) возвращает единицу, если я ничего не путаю.
лампочка горит, то есть lcd_init(16) не вернул единицу. очевидно эта функция работает неправильно вообще, в ДШ указан контролер ks0066... он совместим с hd44780 ? на вид, таблица 7 с командами весьма похожа на ту, что у hd44780... ещё меня интересует, какой должен быть резистор для контраста V0 ? так же я написал свою инициализацию в 4х битовом режиме. на основе этого мануала, но на СИ
пожалуйста проверьте правильность написанного. я начинающий и вполне мог наляпать ошибок. задержки тут могучие (в десять раз больше рекомендуемых автором статьи), и в результате код срабатывает, что можно понять по контрольной лампочке на порту Б1, однакто ничего не происходит. подю питание и загорается только подсветка LCD. никаких чёрных квадратов и тем более текста я не вижу. можно ли как-то понять, жив ли ещё мой дисплей без ATmega ? соединим контакты какие-нибудь или замерив что-нибудь... например, меня настораживает контакт контрастности V0. я прицепил на него LED и он не горит во время работы LCD... Это сообщение отредактировал(а) CompWorm - 16.4.2010, 12:35 |
||||
|
|||||
| smalcom |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: 4 Всего: 7 |
для максимальной контрасноти V0 сажать на "общий". Обычно включенный, но не инициализированный LCD-модуль отображает ряд из черных квадратиков.
вот я на этом както и обжегся. больше не оказалось лучше, пришлось выдерживать более-менее четкие тайминги. -------------------- What DA F...??? |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Ваш init неправильный, во первых не надо проверять busy до начала инициализации (она все равно не выдается), во вторых команд в инициализации должно быть побольше (штук так около 4-5)
|
|||
|
||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
xvr, не поделитесь навыком инициализации на си ? у меня так мало параметров, я так думаю, потому что мне нужно передать всего одну единичку 00100000 , остальные нули, согласно табличке в ДШ.
но у меня не проходит эксперимент, предложенный smalcom на проверку работоспособности дисплея. я врубил Vcc и Vo напрямую в +5V, Gnd в землю и у меня никаких квадратов нет... что ещё можно проверить? думаю, надо завязывать с мясными продуктами и начинать копить на новы LCD |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Вот кусок из рабочего проекта Присоединённый файл ( Кол-во скачиваний: 35 )
lcd.zip 2,21 Kb |
|||
|
||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
xvr, спасибо, попытаюсь разобраться с кодом
|
|||
|
||||
| Yarmak |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.7.2013 Репутация: нет Всего: нет |
Доброго времени суток. Господа, поясните пожалуйста по поводу инициализации: почитал весь даташит и про инициализацию нашел только один алгоритм. Сделал вроде все правильно, но на дисплее квадраты (значит не правильно). Пользуюсь этим даташитом: http://catalog.compel.ru/file/lcm/WINSTAR/...01A-YGH-CTK.pdf
Во многих других примерах вижу работу с ENABLE, но в даташите написано только chip enable signal, а в алгоритме о нем ничего, для чего он нужен? Хотелось бы не просто пользоваться библиотеками, а разобраться. Спасибо. Это сообщение отредактировал(а) Yarmak - 10.7.2013, 14:12 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
||||
|
||||
| LeonidPr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Точнее при сбросе - запись и чтение идут по заднему фронту сигнала ENABLE. Когда-то управлял WH1602 (та же фигня, только двухстрочная). Работал он чисто на задержках, Busy даже не использовал. После каждой команды давал задержку на 40 мкс. Добавлено через 3 минуты и 27 секунд Пример из моего проекта
Сигнал R/W всегда в 0 и не управляется. OutByteToReg выдает байт на шину DB[0-7] --------------------
pkunzip.zip |
|||
|
||||
| Yarmak |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.7.2013 Репутация: нет Всего: нет |
Спасибо всем, заработало.
|
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |