#8 счетчики

Сентябрь 11, 2008

Как уже говорилось в предыдущей части, счетчики являются одними из главных частей любого мк и позволяются отсчитывать время и запускать процессы.
Счетчики имеют несколько разных режимов, которые включаются соответствующим битами в определенных регистрах. Описывать все регистры тут не имеет смысла, ибо есть даташит.
Следует описать возможности и варианты применения счетчика в конкретных случаях.
Самый простой случай
точное время мигания светодиодом.
Что требуется для этого?
Небольшое отступление.
Все таймеры строго завязаны на тактовый генератор и от частоты его зависит частота или время срабатывания таймера.
Частота генератора всегда одинакова, а для изменения скорости счета используются делители:
- без делителя
- делитель на 8
- на 64
- на 256
- на 1024
Например при кварце 4 000 000 гц с делителем на 1024 таймер будет получать  3906 тактов в секунду.
Чтобы получить значения делителя и стартовые данные, используется небольшая программа avrcalc, в которой можно задать частоту кварца и частоту или время срабатывания.
Программа выдаст нужные значения и укажет регистры, в которые надо писать их.

Не с каждым кварцем можно получить нужные частоты.

Первым параметров для конфигурации был делитель, а второй - стартовое значение для счетчика.
Например 8битный счетчик может считать только до 255.
Отсчитав 255 тиков, происходит переполнение счетчика и он генерирует прерывание. В этот момент мы и включаем светодиод.
Второе прерывание выключит его.
Однако счетчик не обязан считать всегда с нуля. Поэтому в него и загружают некое число. Формулы рассчета таких чисел будут приведены уже на конкретном примере, где светодиод будет мигать 1 раз в секунду.

Счетчики так же могут тактироваться внешним сигналом, причем могут определять переход уровня с 0 на 1 или же с 1 на 0.
Эта возможность позволяет нам запустить счетчик, когда пришел сигнал на мк и остановить, когда пропал. Так мы измерим длину сигнала.
Например мы можем кодировать 1 как длительность в 1мс, а 0, как длительность 3мс.

При помощи счетчиков так же можно выдавать эти длительности на выходах, вариируя соотношение 1 к 0 мы можем регулировать мощность в нагрузке. Такой режим называется шим или pwm. Если на выход поставить rc цепочку, то можно получить некое подобие синусоидального сигнала.
Этого вполне достаточно, чтобы воспроизвести речь с приемлимым качеством. Подключив карточку с spi интерфейсом, мы можем сделать простой диктофон без применения внешних ацп и цап.

Тема счетчиков настолько огромна, что охватить всю ее нельзя в одном посте. К тому же это будет скучно.

категория: учим мк avr

ответить

Авторизация только через loginza.

Yandex Google Вконтакте Mail.ru Twitter Loginza MyOpenID OpenID