Timers Capture mode или ПРАВИЛЬНАЯ работа с таймером в режиме захвата

AVR
Сказано об этом в сети много, но на примере дремучих камней и без особых разъяснений. По этому напишу своё.
Есть у АВР такая фишка — захват. Суть в том, что по фронту или спаду (настраивается битом) сигнала на специальной ноге ICRx, делается снимок регистра TCNT и сохраняется в bmp формате и копируется в регистр ICRx. Опосля чего вызывается прерывание, если оно разрешено. В прерывание мы можем входить не спеша — данные из регистра никуда не денутся. Главное успеть обработать до следующего «снимка».
Всё красиво, всё хорошо. Но вот беда. Атмельцы не сделали возможность сбрасывать/запускать таймер по событию! Таймер крутится в цикле, снимается его мгновенное значение, а дальше делай с ним что хочешь.
Самый секас начинается, когда нам надо отслеживать опускание частоты сигнала ниже порога переполнения таймера. Был бы аппаратный ресет — всё понятно. Мониторь бит OVF при считывании результата и не парься! Но, увы и ах.


Читать дальше
  • +2
  • 04 января 2013, 19:47
  • Dikoy
  • 1

IR + USB HID = очередной пульт для компа (часть 1)



Цель данной статьи — продолжение изучения семейства STM32. Поэтому все возражения на тему «а нафига такой мощный проц для такой задачи, я в лихих 90-х делал это на тиньке» или «а в Китае такие по пять рублей пучок» сразу же идут лесом. Тем более, что заглавная картинка взята с ebay, где такой комплект продается за 4-6 баксов.
Статья разделена на три части:
1. Захват и декодирование IR-протокола (таймеры)
2. Создание HID-устройства для выполнения действий на компе без драйверов (USB-HID библиотека)
3. Программа на компе для настройки параметров
4. (опционально, если руки дойдут) Реализация устройства в железе, разводка платы и пайка

Итак, часть первая…


Читать дальше