3:50 "Почему так сделано непонятно". Это нужно для того, чтобы использовать микросхему на ввод. В документации это называют словом "quasi-bidirectional". Берем кнопку (ну или датчик какой), цепляем ее между выходным пином и землей, выводим в порт единицу. Получился самый обычный input_pullup. Отслеживаем с мк состояние пина interrupt (открытый коллектор). При каждом изменении состояния (нажатие/отпускание) будет сработка. К слову, такая же система и в мк 8051 - у пинов всего два состояния (есть регистр PORT, но нет DDR), но при этом можно делать и output, и input...
Так как микросхема может считывать входящие сигналы со своих пинов, пробовал делать чтение бита LCD Busy Flag, но как то это не получилось у меня. Пришлось обходиться задержкой.
В даташите от Хитачи написано одно, а китайские изделия работают так, как им китайский бог на душу положит. Поэтому у них всё всегда "хранится", но при этом еще и постоянно "портится". -- Режим "зануда" включен -- 1) Сам видеоконтроллер называется hd44780 и поддерживает только два режима: 80x1 и 40x2. "16 на 2" это размеры конкретного экранчика. А "1601" то ли вообще в природе не существует, то ли встречается реже, чем амурский тигр. 2) Инициализация (и софтовая, и по питанию) всегда происходит в режиме 80x1. Соответственно, никакого "кода инициализации в режиме 1601" отправить нельзя, потому что ни режима, ни кода такого нет. Можно просто переключиться в режим 40x2 в любое время. Ну или не переключаться и остаться в 80x1. Теоретически, видеобуфер при этом измениться не должен, а по факту с ним будет твориться не пойми что.
Оч плохо что в названиях роликов нет обозначений на английском, искал поиском "interrupt compare" , оказывается здесь этот ролик называется "Прерывание таймера - по совпадению" , случайно его на нашел, а поиск его вообще не находит.
3:50 "Почему так сделано непонятно". Это нужно для того, чтобы использовать микросхему на ввод. В документации это называют словом "quasi-bidirectional". Берем кнопку (ну или датчик какой), цепляем ее между выходным пином и землей, выводим в порт единицу. Получился самый обычный input_pullup. Отслеживаем с мк состояние пина interrupt (открытый коллектор). При каждом изменении состояния (нажатие/отпускание) будет сработка.
К слову, такая же система и в мк 8051 - у пинов всего два состояния (есть регистр PORT, но нет DDR), но при этом можно делать и output, и input...
Класс!!!Спасибо!!!Объяснения полные!!!
Супер.. спасибо )
А в железе не работает почему-то...
спасибо
Так как микросхема может считывать входящие сигналы со своих пинов, пробовал делать чтение бита LCD Busy Flag, но как то это не получилось у меня. Пришлось обходиться задержкой.
сохранится ли информация на LCD1602 если в процессе выполнения программы отправить код инициализации его как дисплей 1601?
вообще в ходе инициализации есть команда очистки дисплея т.ч. врядли сохранится, а вообще хз.
В даташите от Хитачи написано одно, а китайские изделия работают так, как им китайский бог на душу положит. Поэтому у них всё всегда "хранится", но при этом еще и постоянно "портится".
-- Режим "зануда" включен --
1) Сам видеоконтроллер называется hd44780 и поддерживает только два режима: 80x1 и 40x2. "16 на 2" это размеры конкретного экранчика. А "1601" то ли вообще в природе не существует, то ли встречается реже, чем амурский тигр.
2) Инициализация (и софтовая, и по питанию) всегда происходит в режиме 80x1. Соответственно, никакого "кода инициализации в режиме 1601" отправить нельзя, потому что ни режима, ни кода такого нет. Можно просто переключиться в режим 40x2 в любое время. Ну или не переключаться и остаться в 80x1. Теоретически, видеобуфер при этом измениться не должен, а по факту с ним будет твориться не пойми что.
Оч плохо что в названиях роликов нет обозначений на английском, искал поиском "interrupt compare" , оказывается здесь этот ролик называется "Прерывание таймера - по совпадению" , случайно его на нашел, а поиск его вообще не находит.
В какой среде написана программа? CodeVision или WinAvr?
Atmel Studio