ATXMEGA: Не срабатывает Frequency Capture по событию

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Верещагин
Открыл глаза
Сообщения: 41
Зарегистрирован: Ср ноя 14, 2007 01:02:51
Откуда: Москва
Контактная информация:

ATXMEGA: Не срабатывает Frequency Capture по событию

Сообщение Верещагин »

Здравствуйте. Не может ли кто объяснить, в чем проблема. Я пытаюсь померить частоту тактового генератора. Для этого собираю 2 таймера в один, и по событию переполнения RTC выпорлняю захват счетчика. При этом если я захват делаю обычный, то все работает нормально. А вот если делаю частотный (т.е. после захвата счетчик должен начать счет с нуля)- захвата не происходит, по крайней мере, не вызывается прерывание. Понятно, можно поправить вручную, но коль скоро я сейчас занимаюсь тупо изучением новых девайсов, хотелось бы все таки понять, что к чему. Первая мысль - очередной глюк, вроде бы не описанный... Может, у кого есть другое объяснение.

Итак:

void InitFrMeterTimer()
{
EVSYS.CH1MUX = EVSYS_CHMUX_TCC1_OVF_gc;
EVSYS.CH0MUX = EVSYS_CHMUX_RTC_OVF_gc;

TCC1.CTRLD = TC_EVACT_CAPT_gc| TC_EVSEL_CH0_gc;
TCC1.CTRLB = TC0_CCAEN_bm | TC_WGMODE_NORMAL_gc;
TCC1.CTRLA = TC_CLKSEL_DIV1_gc;

TCD1.CTRLD = TC_EVACT_CAPT_gc | TC_EVSEL_CH0_gc | TC1_EVDLY_bm;
TCD1.CTRLB = TC0_CCAEN_bm | TC_WGMODE_NORMAL_gc;
TCD1.CTRLA = TC_CLKSEL_EVCH1_gc;


TC1_SetCCAIntLevel( &TCC1, TC_CCAINTLVL_LO_gc );
PMIC.CTRL |= PMIC_LOLVLEN_bm;
}

Такой код инициализации таймера срабатывает и раз в секунду имею прерывание по захвату, а такой код - не работает:

void InitFrMeterTimer()
{
EVSYS.CH1MUX = EVSYS_CHMUX_TCC1_OVF_gc;
EVSYS.CH0MUX = EVSYS_CHMUX_RTC_OVF_gc;

TCC1.CTRLD = TC_EVACT_FRW_gc| TC_EVSEL_CH0_gc;
TCC1.CTRLB = TC0_CCAEN_bm | TC_WGMODE_NORMAL_gc;
TCC1.CTRLA = TC_CLKSEL_DIV1_gc;

TCD1.CTRLD = TC_EVACT_FRW_gc | TC_EVSEL_CH0_gc | TC1_EVDLY_bm;
TCD1.CTRLB = TC0_CCAEN_bm | TC_WGMODE_NORMAL_gc;
TCD1.CTRLA = TC_CLKSEL_EVCH1_gc;


TC1_SetCCAIntLevel( &TCC1, TC_CCAINTLVL_LO_gc );
PMIC.CTRL |= PMIC_LOLVLEN_bm;
}
Алексей Верещагин
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»