Datasheet

145
ATmega16U4/32U4 [DATASHEET]
Atmel-7766J-USB-ATmega16U4/32U4-Datasheet_04/2016
15.4 Output Compare Unit
The comparator continuously compares TCNT4 with the Output Compare Registers (OCR4A, OCR4B, OCR4C,
and OCR4D). Whenever TCNT4 equals to the Output Compare Register, the comparator signals a match. A
match will set the Output Compare Flag (OCF4A, OCF4B, or OCF4D) at the next timer clock cycle. If the
corresponding interrupt is enabled, the Output Compare Flag generates an Output Compare interrupt. The
Output Compare Flag is automatically cleared when the interrupt is executed. Alternatively, the flag can be
cleared by software by writing a logical one to its I/O bit location. The Waveform Generator uses the match
signal to generate an output according to operating mode set by the PWM4x, WGM40, and Compare Output
mode (COM4x1:0) bits. The top and bottom signals are used by the Waveform Generator for handling the
special cases of the extreme values in some modes of operation (See “Modes of Operation” on page 151.)
Figure 15-4 shows a block diagram of the Output Compare unit.
Figure 15-4. Output Compare Unit, Block Diagram
The OCR4x Registers are double buffered when using any of the Pulse Width Modulation (PWM) modes. For
the normal mode of operation, the double buffering is disabled. The double buffering synchronizes the update of
the OCR4x Compare Registers to either top or bottom of the counting sequence. The synchronization prevents
the occurrence of odd-length, non-symmetrical PWM pulses, thereby making the output glitch-free. See Figure
15-5 on page 146 for an example. During the time between the write and the update operation, a read from
OCR4A, OCR4B, OCR4C, or OCR4D will read the contents of the temporary location. This means that the most
recently written value always will read out of OCR4A, OCR4B, OCR4C, or OCR4D.
OCFnx (Int.Req.)
=
(10-bit Comparator )
8-BIT DATA BUS
TCNTn
WGMn0
Waveform Generator
COMnX1:0
PWMnx
TCnH
OCWnx
10-BIT TCNTn10-BIT OCRnx
OCRnx
FOCn
TOP
BOTTOM