2.5.1.2 Waveform Generation Modes
The compare channels can be used for waveform generation on the corresponding port pins. Each Compare Channel n continuously compares the counter value (TCAn.CNT) with the Compare n (TCAn.CMPn) register. If TCAn.CNT equals TCAn.CMPn, the Comparator n signals a match. This signal is then used for waveform generation, function by the WGMODE bit field selection in the TCAn.CTRLB register.
Note: One single waveform mode is available
for all the compare channels since the WGMODE bit field is common to all
channels.
AVR® Dx - TCA Initialization, Single-Scope PWM Mode
void TCA0_init(void)
{
/* set waveform output on PORT A */
PORTMUX.TCAROUTEA = PORTMUX_TCA0_PORTA_gc;
TCA0.SINGLE.CTRLB = TCA_SINGLE_CMP0EN_bm /* enable compare channel 0 */
| TCA_SINGLE_WGMODE_SINGLESLOPE_gc; /* set single slope PWM mode */
/* disable event counting */
TCA0.SINGLE.EVCTRL &= ~(TCA_SINGLE_CNTEI_bm);
/* set PWM frequency and duty cycle (50%) */
TCA0.SINGLE.PERBUF = PERIOD_EXAMPLE_VALUE;
TCA0.SINGLE.CMP0BUF = DUTY_CYCLE_EXAMPLE_VALUE;
TCA0.SINGLE.CTRLA = TCA_SINGLE_CLKSEL_DIV4_gc /* set clock source (sys_clk/4) */
| TCA_SINGLE_ENABLE_bm; /* start timer */
}
Note: For more details and code examples,
refer to TB3217 - Getting Started with TCA.