Ксения (04.12.2015 22:55 - 22:58, просмотров: 260) ответил Balda на XMEGA E5 - нет флага TTC4_CCA
Существует еще examples для таймера XMEGA E5 (ссылка). Только я макросы Atmel Studio расшифровывать не умею, т.к. работаю всегда с IAR, но у вас Студия, поэтому расшифровать сможете: http://77.72.21.42/temp/tc45.zip
/* Unmask clock for TCC4 */
tc45_enable(&TCC4);
/* Configure TC in normal mode */
tc45_set_wgm(&TCC4, TC45_WG_NORMAL);
/* Configure period equal to resolution to obtain 1Hz */
tc45_write_period(&TCC4, TIMER_EXAMPLE_RESOLUTION);
/* Configure CCA to occur at the middle of TC period */
tc45_write_cc(&TCC4, TC45_CCA, TIMER_EXAMPLE_RESOLUTION / 2);
/* Configure CCB to occur at the quarter of TC period */
tc45_write_cc(&TCC4, TC45_CCB, TIMER_EXAMPLE_RESOLUTION / 4);
/* Enable both CCA and CCB channels */
tc45_enable_cc_channels(&TCC4, TC45_CCACOMP);
tc45_enable_cc_channels(&TCC4, TC45_CCBCOMP);
/*
* Configure interrupts callback functions for TCC4
* overflow interrupt, CCA interrupt and CCB interrupt
*/
tc45_set_overflow_interrupt_callback(&TCC4,
example_ovf_interrupt_callback);
tc45_set_cca_interrupt_callback(&TCC4,
example_cca_interrupt_callback);
tc45_set_ccb_interrupt_callback(&TCC4,
example_ccb_interrupt_callback);
/*
* Enable TC interrupts (overflow, CCA and CCB)
*/
tc45_set_overflow_interrupt_level(&TCC4, TC45_INT_LVL_LO);
tc45_set_cca_interrupt_level(&TCC4, TC45_INT_LVL_LO);
tc45_set_ccb_interrupt_level(&TCC4, TC45_INT_LVL_LO);
/*
* Run TCC4
*/
tc45_set_resolution(&TCC4, TIMER_EXAMPLE_RESOLUTION);
Callback'и вам не нужны, но остальное, на мой взгляд, может оказаться полезным.
Особенно tc45_enable_cc_channels() и tc45_set_cca_interrupt_level().