| Ваш IP: 3.91.92.194 | Online(49) - гости: 19, боты: 30 | Загрузка сервера: 0.84 ::::::::::::

Калькулятор 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().

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

 

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

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

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

  • УМЗЧ класса D мощностью 18Вт на базе TDA7482

    УМЗЧ класса D мощностью 18Вт на базе TDA7482

    Усилитель на базе TDA7482 имеет встроенную защиту от перегрева, перенапряжения и КЗ. Усилитель на TDA7482 имеет следующие характеристики: Напряжение питания от +/-10В до +/-25В (номинальное +/-21В) Ток покоя 40…60мА Выходная мощность 18Вт(Rн=4 Ом) при КНИ 1% и в номинальном напряжении питания  КНИ=0,1% при выходной мощности 1Вт на нагрузке 8 Ом …Подробнее...
  • Светодиодный проблесковый маячок

    Светодиодный проблесковый маячок

    На рисунке показана схема светодиодного маячка, схема проста и не содержит дорогостоящих элементов, и собрана по классической схеме (мультивибратор). Схема состоит из двух транзисторов, двух конденсаторов, четырех резисторов, и двух светодиодов. Частота мигания светодиодов зависит от сопротивления резисторов 100К и конденсаторов 10 мкФ. Соответственно увеличив емкость конденсаторов уменьшится частота мигания …Подробнее...
  • Световая сигнализация

    На рисунке показана схема простой световой сигнализации. При попадании света светочувствительный резистор LDR, уст-во издает звук.Подробнее...
  • Преобразователь +9В в -5В

    555 — таймер может быть использован для генерации прямоугольного сигнала с целью получения отрицательного напряжения относительно общего провода питания. Импульсы с контакта 3 микросхемы через конденсатор 22мкФ поступают на выпрямитель, после выпрямителя получаем отрицательное напряжение около 7В, но при помощи стабилитрона 5,1В (он служит регулятором выходного напряжения) получаем выходное напряжение …Подробнее...
  • КАК РАБОТАЕТ ДИОД

    КАК РАБОТАЕТ ДИОД

    В этом выпуске вы узнаете: что такое диод, принцип действия диода, как работает диод, что такое p — n переход; что такое прямой ток диода, что такое обратный ток диода; каково внутреннее сопротивление диода; что такое вольт- амперная характеристика диода; что такое пропускное и не пропускное напряжение диода; как работает …Подробнее...