| Ваш IP: 35.172.111.71 | Online(51) - гости: 17, боты: 34 | Загрузка сервера: 1.38 ::::::::::::

Калькулятор AVR — режим CTC (сброс при совпадении)(Arduino)

Режим работы таймера CTC (сброс при совпадении) это когда в регистр OCR микроконтроллера загружается число, а счетный регистр TCNT сравнивает свое значение с числом регистра OCR и при совпадении происходит прерывание. При этом в обработчик прерывания исполняет помещенный в него код.

Рассмотрим режим работы CTC таймера на примере микроконтроллера ATmega328.

bool led_stat    = true;

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW); 
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
// (16000000/((31249+1)x256))=2 Hz
  OCR1A = 31249;
  TCCR1B |= (1 << WGM12);
// Prescaler 256
  TCCR1B |= (1 << CS12);
  TIMSK1 |= (1 << OCIE1A);
  sei();
}

void loop(){}

ISR(TIMER1_COMPA_vect){ 
  digitalWrite(13, led_stat); 
  led_stat = !led_stat;
  }

Выше показан пример скетча демонстрирующий работу таймера 1, частота прерывания таймера 2 Гц, в обработчике прерывания размещен код который заставляет мигать светодиод в такт работы таймера (в первый такт работы таймера светодиод загорается, во второй такт таймера светодиод гаснет).

OCR1A — регистр сравнения, так как таймер 1 микроконтроллера Atmega328 16 бит, то в регистр сравнения можно поместить число от 0 до 65535.

TCCR1B — регистр управления, при помощи этого регистра активируется режим CTC и настраивается предделитель.

Предделитель делит тактовую частоту микроконтроллера, для этого используются биты CS10 CS11 CS12 регистра TCCR1B.

Бит WGM12 активирует режим CTC

TIMSK1 — регистр управления прерываниями

Бит регистра TIMSK1 OCIE1A  разрешают прерывания при совпадении с A (OCR1A)

После запуска таймера обработчик прерывания ISR(TIMER1_COMPA_vect) начинает исполнять код который в нем размещен.

В примере скетча таймер будет работать с частотой 2 Гц, частота прерывания таймера зависит от предделителя и счетного регистра:

(16000000/((31249+1)x256))=2 Hz

16000000 — тактовая частота микроконтроллера

31249 — значение счетного регистра

256 — предделитель

При работе с таймерами, например микроконтроллера Atmega328 следует учитывать, что таймер 0 задействован в функциях delay() и millis(), а таймер 2 в функции  tone().

Для упрощения работы с таймерами можно воспользоваться онлайн калькулятором.

 

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

Войти с помощью: 

Случайные статьи

  • Реле времени

    Реле времени позволяет устанавливать выдержку до 30 сек с интервалом 1с. Время задающая цепь — R6-R18 С1. Пороговое уст-во выполнено на V1 V2 и электромагнитных реле К1 К2 который представляет собой усилитель постоянного тока с ПОС. Для уменьшения емкости времязадающего конденсатора в схему включен полевой транзистор V1 в первом каскаде. …Подробнее...
  • Реле освещения

    Реле освещения чувствительна к свету попадающего на фоторезистор. К контактам реле подключают нагрузку — лампы накаливания или энергосберегающие лампы которые включаться в ночное время суток и автоматически выключаться утром. Фоторезистор используется как датчик, чувствительность схемы регулируется резистором R1. Фоторезистор меняет свое сопротивление от сотен Ом при ярком свете и до …Подробнее...
  • Электронный предохранитель

    Электронный предохранитель

    На рисунке показана схема простого электронного предохранителя. Схема обеспечивает защиту от короткого замыкания на нагрузке при выходном напряжении электронного предохранителя до 45 В. Фактически эта схема не является предохранителем в классическом понимании, а является стабилизатором тока, значение тока при котором начинает срабатывать защита определяется номиналами резисторов R1 R2, так же …Подробнее...
  • Отображение восьми сигналов на экране осциллографа

    Бурно развивающаяся современная цифровая электроника требует от радиолюбителей глубоких знаний и хорошей измерительной техники. Если первое вполне достижимо, то второе при огромной дороговизне импортной аппаратуры и морально устаревшей отечественной приводит в тупиковую ситуацию, из которой выход можно найти совместными усилиями. В процессе наладки схем последовательной логики радиолюбителю может потребоваться одновременно …Подробнее...
  • Передатчик на МС2833

    На рисунке показана схема передатчика (Рвых=20-30мВт), частота задающего генератора определяется частотой резонанса цепи состоящей из кв. резонатора Q1, индуктивности L1 и варикапа который имеется внутри микросхемы А1. Модулирующий сигнал снимается с электретного микрофона М1 и поступает на микрофонный усилитель-ограничитель входящий в состав микросхемы (вывод 5). С выхода усилителя (вывод4) сигнал …Подробнее...