Для выполнения команд или вывода данных контроллеру символьного lcd требуется определенное время. Поэтому в конце функций записи мы использовали программные задержки в 40 us. Это вполне работоспособное решение, однако не единственно возможное.   
   Контроллер символьного lcd имеет флаг занятости BF. Он устанавливается в 1,  когда контроллер выполняет внутреннюю работу и сбрасывается, когда контроллер освобождается. Вместо программной задержки можно опрашивать состояние этого флага и запускать цикл записи команд/данных, только когда флаг сброшен.
   Что представляет из себя строка? Это всего лишь массив, последним элементом которого является нулевой символ ‘\0’. Он добавляется компилятором автоматически и служит маркером конца строки. 
   Объявить строку во флэш памяти микроконтроллера AVR можно следующим образом:
   Следующим этапом работы над нашей программой будет разбиение ее на модули. Мы разделим программу на 2 части – основная программа и библиотека для работы с дисплеем. Зачем нужно разбивать программу на модули, и какие это дает преимущества?
    Благодаря низкой цене и простому интерфейсу, символьные ЖК-дисплеи находят широкое применение в различного рода устройствах, начиная от радиолюбительских поделок и заканчивая промышленной аппаратурой. В интернете довольно много примеров и описаний работы с символьными ЖКД, но из маркетинговых соображений, а также, потому что мне есть, что сказать, я решил написать эту статью.
   С помощью описанной в предыдущей статье простой библиотеки программных таймеров, можно легко организовать управление подсветкой LCD дисплея. Учитывая ее большое энергопотребление, неплохо бы включать подсветку только на время работы с устройством. Давишь на кнопки  - подсветка горит, перестаешь - она гаснет. Реализовать это можно следующим образом. Нажатие на любую кнопку - зажигает подсветку и запускает таймер. Пока таймер считает, нажатия на кнопки вызывают его перезапуск. Если в течении заданного времени ни одна кнопка не была нажата, таймер срабатывает и гасит подсветку.
Страница 16 из 19