Программные таймеры. Часть 1
Реализация меню на таблицах. Теория и практический пример
Память программ микроконтроллеров AVR, помимо своего прямого предназначения может быть использована для хранения константных данных. Для этого в AVR ассемблере есть специальные директивы .db и .dw. Первая определяет константный байт или несколько байтов, вторая константное слово или несколько слов. (слово - это 2 байта). Для того чтобы указать, что заданные константы расположены во flash памяти микроконтроллера, используется директива .cseg
Учебный курс. Широтно-импульсная модуляция (ШИМ, PWM). Управление яркостью светодиода. Генерация аналогового сигнала.
Таймеры/счетчики микроконтроллеров AVR имеют несколько режимов работы. Один из них, СТС - сброс при совпадении, мы уже использовали. Давайте разберемся с другим режимом - Fast PWM.
PWM (Pulse-width modulation или по-русски широтно-импульсная модуляция) – это вид модуляции цифровых сигналов, при котором частота сигнала остается постоянной, а длительность меняется. С помощью ШИМ можно регулировать мощность в нагрузке, а также генерировать аналоговые сигналы.
Трюк с #define
Один из наиболее частых способов применения директивы #define – создание макроопределений замаскированных под функции. Для макросов состоящих из одной инструкции, это легко. Просто определяем макрос без точки с запятой.
Учебный курс. АЦП микроконтроллера AVR или как подключить 4 кнопки к одному выводу. Часть 2
Начальный код мы разобрали, самое время приступить ко второй части нашей задачи - распознаванию нажатой кнопки. Разберемся, какие напряжения будут на входе АЦП при нажатии кнопок, и какой цифровой код получится после аналого-цифрового преобразования.