Благодаря низкой цене и простому интерфейсу, символьные ЖК-дисплеи находят широкое применение в различного рода устройствах, начиная от радиолюбительских поделок и заканчивая промышленной аппаратурой. В интернете довольно много примеров и описаний работы с символьными ЖКД, но из маркетинговых соображений, а также, потому что мне есть, что сказать, я решил написать эту статью.
   С помощью описанной в предыдущей статье простой библиотеки программных таймеров, можно легко организовать управление подсветкой LCD дисплея. Учитывая ее большое энергопотребление, неплохо бы включать подсветку только на время работы с устройством. Давишь на кнопки  - подсветка горит, перестаешь - она гаснет. Реализовать это можно следующим образом. Нажатие на любую кнопку - зажигает подсветку и запускает таймер. Пока таймер считает, нажатия на кнопки вызывают его перезапуск. Если в течении заданного времени ни одна кнопка не была нажата, таймер срабатывает и гасит подсветку.
    Аппаратные таймеры/счетчики микроконтроллеров AVR ценный и ходовой ресурс. Чаще всего при их использовании возникает две проблемы – нехватка количества таймеров и невозможность получить временные интервалы большой длительности. Обе эти проблемы можно решить с помощью программных таймеров. Вариантов реализации программных таймеров существует довольно много. Один из них описан в этой статье.

   Память программ микроконтроллеров AVR, помимо своего прямого предназначения может быть использована для хранения константных данных. Для этого в AVR ассемблере есть специальные директивы .db и .dw. Первая определяет константный байт или несколько байтов, вторая константное слово или несколько слов. (слово - это 2 байта). Для того чтобы указать, что заданные константы расположены во flash памяти микроконтроллера,  используется директива .cseg 

Форум

  Сегодня наконец-то запустил форум. Пока что он работает в тестовом режиме. Нужно еще утрясти список разделов и определиться с шаблоном.