12. 8-bit Timer/Counter0 with PWM
Timer/Counter0 is a general purpose 8-bit Timer/Counter module, with two independent Output
Compare Units, and with PWM support. It allows accurate program execution timing (event man-
agement) and wave generation. The main features are:
• Two Independent Output Compare Units
• Double Buffered Output Compare Registers
• Clear Timer on Compare Match (Auto Reload)
• Glitch Free, Phase Correct Pulse Width Modulator (PWM)
• Variable PWM Period
• Frequency Generator
• Three Independent Interrupt Sources (TOV0, OCF0A, and OCF0B)
12.1 Overview
A simplified block diagram of the 8-bit Timer/Counter is shown in Figure 12-1. For the actual
placement of I/O pins, refer to ”Pinout ATmega48/88/168” on page 2. CPU accessible I/O Regis-
ters, including I/O bits and I/O pins, are shown in bold. The device-specific I/O Register and bit
locations are listed in the ”8-bit Timer/Counter Register Description” on page 99.
The PRTIM0 bit in ”Power Reduction Register - PRR” on page 40 must be written to zero to
enable Timer/Counter0 module.
Figure 12-1. 8-bit Timer/Counter Block Diagram
Count
TOVn
(Int.Req.)
Clear
Control Logic
Clock Select
Direction
clkTn
Edge
Detector
Tn
TOP
BOTTOM
( From Prescaler )
Timer/Counter
TCNTn
=
= 0
OCnA
(Int.Req.)
Waveform
Generation
OCnA
OCnB
=
OCRnA
Fixed
TOP
Value
OCnB
(Int.Req.)
Waveform
Generation
=
OCRnB
TCCRnA
TCCRnB
88
ATmega48/88/168
2545E–AVR–02/05