roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 00:05

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: LCD - мистика
СообщениеДобавлено: 07 фев 2006, 23:54 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
В общем уже не первый час парюсь с символьным ЖКИ (HD44780). В 8-битном режиме все без проблем было, а вот в 4-битном никак не заводится. Если у кого есть провереный кусок кода на Си - буду рад.  :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: LCD - мистика
СообщениеДобавлено: 08 фев 2006, 00:11 
Не в сети

Зарегистрирован: 23 июл 2005, 00:39
Сообщения: 63
Откуда: Казань
-= Александр =- писал(а):
В общем уже не первый час парюсь с символьным ЖКИ (HD44780). В 8-битном режиме все без проблем было, а вот в 4-битном никак не заводится. Если у кого есть провереный кусок кода на Си - буду рад.  :roll:


Код:
#define SET_RS (PORTB |= BIT(4))
#define CLR_RS (PORTB &= ~BIT(4))
#define SET_E  (PORTB |= BIT(5))
#define CLR_E  (PORTB &= ~BIT(5))
#define WRITE_LOW_NIBBLE(x)  ( PORTD = (PORTD & 0x0F) | ((x) << 4) )
#define WRITE_HIGH_NIBBLE(x) ( PORTD = (PORTD & 0x0F) | ((x) & 0xF0) )

#define MKS_BYTE 40 /* время на передачу байта на дисплей */
/*
* посылка байта на дисплей с необходимой задержкой
* value - значение
*/
void WriteDelayed(byte value) {
 SET_E;
 WRITE_HIGH_NIBBLE(value);
 CLR_E;
 SET_E;
 WRITE_LOW_NIBBLE(value);
 CLR_E;
 delay_us(MKS_BYTE);
}

/*
* инициализация уст-ва
*/
void InitDisplay(void) {
 CLR_RS;
 WriteDelayed(0x33);
 WriteDelayed(0x32);
 WriteDelayed(0x28); //4-битный интерфейс, 2 строки, шрифт-5х7 точек
 WriteDelayed(0x0c); //включить дисплей, выключить курсор
 WriteDelayed(0x06); //Курсор сдвигается вправо при записи, дисплей стоит на месте
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 фев 2006, 00:47 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Странно, теперь горит вся верхняя строка... И ни на что кроме ресета не реагирует... Какой у тебя кварц? Есть подозрение что слишком шустро работает...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2006, 12:04 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Что-то мне кажется дисплейчик у меня дохлый. Кто-нить знает как они к статике относятся? А то вполне возможно что его разрядом убило...  :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2006, 13:21 
Не в сети

Зарегистрирован: 04 авг 2005, 18:56
Сообщения: 106
Откуда: Москва
Прям сразу дохлый. Код надо правильно писать :!:
Вот тебе рабочий 100% пример. Тот что wolf дал - странный код. Нет задержек! Команды для перехода в 4 битный режим это
0x30
0x30
0x30
0x20

А у него

0x33
0x32
0x28

Это вообще откуда????Их должно быть 4! И они совершенно другие!

P.S. В даташите все по шагам расписано!


Вложения:
IARLCD4bit.RAR [3.04 КиБ]
Скачиваний: 108
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2006, 13:43 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Дисплеи от статики дохнут очень легко. Только вот не думаю, что он у тебя сдох - по 8 битному же работает. А что верхняя строка полностью горит - это самотестирование в некоторых дисплеях - значит, питание подано, а инициализации не было.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2006, 14:09 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Как только я эти задержки не мучал... Раньше через флаг все было, но щас ноги для этого не хватает...  :(  В общем буду пробовать дальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 фев 2006, 16:39 
Не в сети

Зарегистрирован: 16 апр 2005, 19:49
Сообщения: 39
Откуда: Санкт-Петербург
Ещё такой момент есть- неиспользованные 4 разряда- притянуть к земле.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 фев 2006, 16:59 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
У меня все ОК, это контроллер глюкавый был. На новый переставил - все заработало!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO