// // Created by User on 018 18.05.20. // #include "Timer.h" void Timer1::setup(TimerPrescaler prescaler, uint16_t OCR) { TCCR1B |= (1 << WGM12); //режим сброса по свпадению switch (prescaler) { case PRESCALER_NO: TCCR1B |= (1 << CS10); break; case PRESCALER_8: TCCR1B |= (1 << CS11); break; case PRESCALER_64: TCCR1B |= (1 << CS10) | (1 << CS10); break; case PRESCALER_256: TCCR1B |= (1 << CS12); break; case PRESCALER_1024: TCCR1B |= (1 << CS12) | (1 << CS10); break; } TIMSK1 |= (1 << OCIE1A); //устанавливаем бит разрешения прерывания 1ого счетчика по совпадению с OCR1A(H и L) OCR1AH = (OCR & 0xFF00) >> 8; OCR1AL = (OCR & 0x00FF); }