Не могу сказать, что мне хватило 15 минут, чтобы написать свою библиотечку...
Да.... было дело на несколько страниц. В результате, Вы выложили для всех исходники своих библиотек. Здесь делов то, изменить вывод данных из вашей опубликованной библиотеки. Видимо и это уже сложно, если спрашивают о наработках и библиотеках.
Возможно, что это банальная лень... Или просто страх перед неизведанным. ) Но мне нравится наступать на свои грабли и быть первооткрывателем. А если серьезно, то я думал, почему бы не взять библиотеку от Ди-Халта и не попробовать сделать лучше? Ну, получилось что получилось, результатом я очень доволен. И куда бы я побрел без вашей лично и всеобщей помощи?! А теперь, когда пришло осознание, как это работает, хочется по мере возможности помочь и другим сделать тоже самое.
...мне нравится наступать на свои грабли и быть первооткрывателем.... ...хочется по мере возможности помочь и другим сделать тоже самое...
И это правильно. Лично я никогда не пользуюсь чужими библиотеками. Создал сам - знаешь как это работает. На мой взгляд, можно/нужно помогать тем, у кого есть желание что-то изучать.
Народ долгое время собирал информацию по данному дисплею. На фото изображен модуль на котором разводка сделана 4 битной. Долго мучился с его инициализацией, и когда вроде бы в протеусе все заработало, на живой железки обнаружилась проблема с повторной инициализацией. После нажатия на кнопку сброса контролера на дисплее был мусор. В итоге хочу предложить вам код для AVR STUDIO 6.(0-2) 100% рабочий для данного дисплея. Не боящийся повторной инициализации. Соответственно в режиме 4 бита, код совместим с модулем ARDUINO UNO R3 (ATMEGA328)
// ФУНКЦИЯ ОТПРАВКИ КОМАНДЫ void LCD_WRITE_CMD(unsigned char TEMP_WRITE_CMD) { RS_DISABLE; LCD_WRITE_DATA(TEMP_WRITE_CMD); RS_ENABLE; } // ЗАПИСЬ В ПОРТ КОММАНДЫ ИЛИ ДАННЫХ (ОПРЕДЕЛЯЕТСЯ RS), используется в LCD_WRITE_CHAR и LCD_WRITE_CMD void LCD_WRITE_DATA(unsigned char TEMP_WRITE_DATA) { LCD_WRITE_NIBBLE(TEMP_WRITE_DATA & 0xF0); // старшый полубайт LCD_WRITE_NIBBLE(TEMP_WRITE_DATA << 4); //младший полубайт }
void LCD_OFF() { LCD_WRITE_CMD(0b00001000); } void LCD_ON() { LCD_WRITE_CMD(0b00001100); } // Установка курсора, КУРСОР НЕ СДВИГАЕТСЯ!!! так настроено при инициализации. LINE = 0 - первая строка, 1 - вторая строка. void LCD_SET_CURSOR(unsigned char LINE, unsigned char POS) { POS |= 0b10000000; if (LINE == 0x01) { POS |= 0x40; } LCD_WRITE_CMD(POS); }
P.S. На данном модуле есть управление подсветкой что для меня было сюрпризом) т.к. на схеме этого не было, установлен транзистор на катоде подсветки. можно управлять так:
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Народ долгое время собирал информацию по данному дисплею. Долго мучился с его инициализацией, и когда вроде бы в протеусе все заработало, на живой железки обнаружилась проблема с повторной инициализацией. После нажатия на кнопку сброса контролера на дисплее был мусор. В итоге хочу предложить вам код для AVR STUDIO 6.(0-2) 100% рабочий для данного дисплея. Не боящийся повторной инициализации.
servmv, Где там мучиться? Прочитать документацию на HD44780 и работать с ним "по-честному" было сложно? У моих заказчиков несколько тысяч изделий с индикаторами на HD44780 работают в круглосуточном режиме более 5-ти лет без рекламаций.
Некоторые операции, во время инициализации, требуют ожидания выполнения. Делается это либо задержками, либо чтением состояния из дисплея. Но у Вас, по всей видимости, "всё работает" только из-за бешеных задержек в функции LCD_WRITE_NIBBLE.
Где там мучиться? Прочитать документацию на HD44780 и работать с ним "по-честному" было сложно? У моих заказчиков несколько тысяч изделий с индикаторами на HD44780 работают в круглосуточном режиме более 5-ти лет без рекламаций.
Для новичков это не так просто как Вы думаете, в инете инфа в основном для ASM или еще хуже для Basic, а самое прикольное все предложенные варианты инициализации давали мусор при повторной инициализации. По поводу инструкций я конечно читаю на EN но приходится "напрягать мозг", а от того что я поделился рабочим кодом, кому-то возможно это поможет, и уж точно хуже не будет.
Не многоваты ли задержки между такими операциями ? Во вторых, какой смысл от сеих строк Некоторые операции, во время инициализации, требуют ожидания выполнения. Делается это либо задержками, либо чтением состояния из дисплея. Но у Вас, по всей видимости, "всё работает" только из-за бешеных задержек в функции.
На первый и третий вопрос, ответ один, визуально задержек не видно, одновременно перезаписывается 3*4 = 12 символов на дисплее(4 быстро изменяемые числа по 3 символа) остальное статично. На второй вопрос, обнуление порта, было написано в процессе отладки, возможно и лишнее. Ща проверю.
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Ср апр 22, 2015 21:45:23
Модератор
Карма: 90
Рейтинг сообщений: 1341
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4561 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Цитата:
визуально задержек не видно
Но это же не значит, что их можно везде и подряд вставлять 10 ms на пол-команды, 20 на команду. Вывести буфер из 16-ти символов - 320 миллисекунд. Круто, чё
Но это же не значит, что их можно везде и подряд вставлять 10 ms на пол-команды, 20 на команду. Вывести буфер из 16-ти символов - 320 миллисекунд. Круто, чё
0.3 сек на вывод? че не так то? Ну ускорил ровно в 2 раза ) 160мс))
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Ср апр 22, 2015 22:07:28
Модератор
Карма: 90
Рейтинг сообщений: 1341
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4561 Откуда: Планета Земля
Рейтинг сообщения:1 Медали: 1
servmv писал(а):
0.3 сек на вывод? че не так то?
Надеюсь, Вы шутите А если серьёзно - убирайте их оттуда, "от греха подальше" Они там не нужны.
Цитата:
Диплом/курсовик "горит"?
Не думаю. Просто, видимо, человеку захотелось поделиться наработками. И это есть хорошо. Но и критику, в таком случае, нужно принимать какой она есть. И не игнорировать её, а обсуждать коструктивно, без всяких "а что такого ?" и т.д...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения