Datasheet
22.5.3 Using the Output Compare Unit
Since writing TCNT2 in any mode of operation will block all compare matches for one timer clock cycle,
there are risks involved when changing TCNT2 when using the output compare channel, independently of
whether the Timer/Counter is running or not. If the value written to TCNT2 equals the OCR2x value, the
compare match will be missed, resulting in incorrect waveform generation. Similarly, do not write the
TCNT2 value equal to BOTTOM when the counter is counting down.
The setup of the OC2x should be performed before setting the data direction register for the port pin to
output. The easiest way of setting the OC2x value is to use the Force Output Compare (FOC2x) strobe
bit in Normal mode. The OC2x register keeps its value even when changing between Waveform
Generation modes.
Be aware that the COM2x[1:0] bits are not double buffered together with the compare value. Changing
the COM2x[1:0] bits will take effect immediately.
22.6 Compare Match Output Unit
The Compare Output mode (COM2x[1:0]) bits have two functions. The waveform generator uses the
COM2x[1:0] bits for defining the Output Compare (OC2x) state at the next compare match. Also, the
COM2x[1:0] bits control the OC2x pin output source. The following figure shows a simplified schematic of
the logic affected by the COM2x[1:0] bit setting. The I/O registers, I/O bits, and I/O pins in the figure are
shown in bold. Only the parts of the general I/O Port Control registers (DDR and PORT) that are affected
by the COM2x[1:0] bits are shown. When referring to the OC2x state, the reference is for the internal
OC2x register, not the OC2x pin.
Figure 22-4. Compare Match Output Unit, Schematic
PORT
DDR
D Q
D Q
OCnx
Pin
OCnx
D Q
Waveform
Generator
COMnx[1]
COMnx[0]
0
1
DATA BUS
FOCnx
clk
I/O
The general I/O port function is overridden by the Output Compare (OC2x) from the waveform generator
if either of the COM2x1:0 bits are set. However, the OC2x pin direction (input or output) is still controlled
by the Data Direction Register (DDR) for the port pin. The DDR bit for the OC2x pin (DDR_OC2x) must
be set as output before the OC2x value is visible on the pin. The port override function is independent of
the Waveform Generation mode.
ATmega48PA/88PA/168PA
8-bit Timer/Counter2 (TC2) with PWM and A...
© 2018 Microchip Technology Inc.
Datasheet Complete
DS40002011A-page 204