Easyelectronics.ru

Электроника для всех
Текущее время: 21 ноя 2019, 04:11

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Работа с HD44780
СообщениеДобавлено: 16 ноя 2014, 15:37 
Старожил
Аватара пользователя

Зарегистрирован: 16 окт 2011, 11:19
Сообщения: 853
Откуда: Харьков
dek_an писал(а):
AlexPM писал(а):
Тогда ещё один тест.
Замените waitWhileBusy() на delay_us(100). То есть вместо ожидания по флагу - просто задержка в 100 микросекунд.

Помогло. Спасибо!
Хм... буду разбираться...


Может в lcdIsBusy() надо сделать if (!GBI(getCommand(), LCD_BF)), т.к. індикатор готов корда BF=0, или я не в резонанс сморозил?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с HD44780
СообщениеДобавлено: 16 ноя 2014, 16:45 
Только пришел

Зарегистрирован: 16 окт 2014, 15:06
Сообщения: 15
BigLeha писал(а):
Я не знаю, как в вашем дисплее, но в том, с которым я сталкивался чтение нужно было делать 2 раза подряд, т.к. с первого раза был какой-то мусор, и только когда прочитаешь второй раз приходят нормальные данные... Может быть в этом причина?

Спасибо, попробую.
Просто странно: waitWhileBusy() (то есть чтение) делается перед каждой записью команды. И только после записи команды перехода в позицию (а это команда 0b1X000XXXX, то есть 8й бит в единичке) происходит зависание. А флаг занятости - это как раз 8й бит в прочитанном байте. Может с этим как-то связано...
Хотя почему тогда запись команды перехода в нулевую строку нормально...


Последний раз редактировалось dek_an 16 ноя 2014, 16:56, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с HD44780
СообщениеДобавлено: 16 ноя 2014, 16:49 
Только пришел

Зарегистрирован: 16 окт 2014, 15:06
Сообщения: 15
lizard66 писал(а):
dek_an писал(а):
AlexPM писал(а):
Тогда ещё один тест.
Замените waitWhileBusy() на delay_us(100). То есть вместо ожидания по флагу - просто задержка в 100 микросекунд.

Помогло. Спасибо!
Хм... буду разбираться...


Может в lcdIsBusy() надо сделать if (!GBI(getCommand(), LCD_BF)), т.к. індикатор готов корда BF=0, или я не в резонанс сморозил?

Если индикатор занятости - 0, то тогда да... Но ведь это не так (я в недоумении)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с HD44780
СообщениеДобавлено: 16 ноя 2014, 17:01 
Только пришел

Зарегистрирован: 16 окт 2014, 15:06
Сообщения: 15
BigLeha писал(а):
Я не знаю, как в вашем дисплее, но в том, с которым я сталкивался чтение нужно было делать 2 раза подряд, т.к. с первого раза был какой-то мусор, и только когда прочитаешь второй раз приходят нормальные данные... Может быть в этом причина?

Не, не помогло...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с HD44780
СообщениеДобавлено: 16 ноя 2014, 17:39 
Старожил
Аватара пользователя

Зарегистрирован: 16 окт 2011, 11:19
Сообщения: 853
Откуда: Харьков
dek_an писал(а):
Если индикатор занятости - 0, то тогда да... Но ведь это не так (я в недоумении)?

Да, но это условие в случае занятости возвращает $FF, которое приводит к преждевременному завершению цикла в waitWhileBusy(), или я не прав?

UPD: сорри, таки не прав )


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2

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


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

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


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB