Помогите пожалуйста настроить таймер в Attiny1607, новое поколение выпущенное Microchip.
Я хочу настроить таймер TCA 16bit на период 0.2мс(5КГц) в режиме частоты(frequency mode).
Я расчитываю CMP0 по формуле из даташита.
N = 16
CMP0 = 20000KHz/(2*N * 5KHz)-1 = 124 = 0x7C
Но при таких настройках таймер работает не правильно. Я подбирала по осциллограме с ножки PB0(WO0), получилось, что для настройки периода 0.2мс CMP0 = 0x14
Таймер настраивала так:
TCA0.SINGLE.CTRLA = 0x00;
TCA0.SINGLE.CMP0 = 0x14;
TCA0.SINGLE.CTRLB = 0x10|TCA_SINGLE_WGMODE_FRQ_gc;
TCA0.SINGLE.CTRLD = 0x00;
TCA0.SINGLE.CTRLECLR = 0x00;
TCA0.SINGLE.EVCTRL = 0x00;
TCA0.SINGLE.INTCTRL= TCA_SINGLE_OVF_bm |TCA_SINGLE_CMP0_bm;
TCA0.SINGLE.CNT = 0;
TCA0.SINGLE.CTRLA = TCA_SINGLE_CLKSEL_DIV16_gc;
TCA0.SINGLE.CTRLA |= TCA_SINGLE_ENABLE_bm;
В чем может быть проблема, как вы думаете?
А еще есть вторая проблема, с перываниями.
Я хочу настроить прерывание с частотой 2мс. Но в действительности ISR (TCA0_CMP0_vect) не срабатывает. Зато срабатывает ISR (TCA0_OVF_vect) с периодом ~0,05м
Помогите пожалуйста разобраться.