Таймеры и Прерывания: Делаем несколько дел одновременно

Стандартный delay(1000) останавливает всю программу. Это самый «не-хакерский» способ программирования. Настоящие хакеры используют Таймеры и Прерывания.

Как это работает внутри:
В ATmega328P есть три аппаратных таймера (Timer0, Timer1, Timer2). Они тикают независимо от вашего кода.

  • Timer0: Используется для millis() и micros()Не трогайте его, иначе сломаете задержки.
  • Timer1: 16-битный. Идеален для генерации ШИМ с высокой частотой или для счета импульсов с энкодеров.
  • Timer2: 8-битный. Отлично подходит для «танцевальных» эффектов светодиодов без задержек.

Хак с прерываниями (Interrupts):
Подключите датчик к пину 2 или 3 (на Uno это INT0 и INT1). Напишите функцию, которая сработает мгновенно, как только изменится напряжение на пине.
Пример: Вы вращаете энкодер — микроконтроллер бросает все дела, обрабатывает поворот и возвращается к основной программе. Это позволяет делать реактивные интерфейсы без подвисаний.

Вам также может понравиться

About the Author: ардуинчиков

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *