Datasheet
Figure 19-2. Counter Unit Block Diagram
DATA BUS
TCNTn Control Logic
count
TOVn
(Int.Req.)
Clock Select
top
Tn
Edge
Detector
( From Prescaler )
clk
Tn
bottom
direction
clear
Note: The “n” in the register and bit names indicates the device number (n = 0 for timer/counter 0), and
the “x” indicates output compare unit (A/B).
Table 19-2. Signal Description (Internal Signals)
Signal Name Description
count Increment or decrement TCNT0 by 1.
direction Select between increment and decrement.
clear Clear TCNT0 (set all bits to zero).
clk
Tn
Timer/counter clock, referred to as clk
T0
in the following.
top Signalize that TCNT0 has reached maximum value.
bottom Signalize that TCNT0 has reached minimum value (zero).
Depending on the mode of operation used, the counter is cleared, incremented, or decremented at each
timer clock (clk
T0
). clk
T0
can be generated from an external or internal clock source, selected by the Clock
Select bits (CS0[2:0]). When no clock source is selected (CS0=0x0) the timer is stopped. However, the
TCNT0 value can be accessed by the CPU, regardless of whether clk
T0
is present or not. A CPU write
overrides (has priority over) all counter clear or count operations.
The counting sequence is determined by the setting of the WGM01 and WGM00 bits located in the Timer/
Counter Control Register (TCCR0A) and the WGM02 bit located in the Timer/Counter Control Register B
(TCCR0B). There are close connections between how the counter behaves (counts) and how waveforms
are generated on the Output Compare outputs OC0A and OC0B. For more details about advanced
counting sequences and waveform generation, see Modes of Operation.
The Timer/Counter Overflow Flag (TOV0) is set according to the mode of operation selected by the
WGM0[2:0] bits. TOV0 can be used for generating a CPU interrupt.
19.5 Output Compare Unit
The 8-bit comparator continuously compares TCNT0 with the Output Compare Registers (OCR0A and
OCR0B). Whenever TCNT0 equals OCR0A or OCR0B, the comparator signals a match. A match will set
the Output Compare Flag (OCF0A or OCF0B) 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 '1' to its I/O bit location. The waveform generator uses the match signal to generate an output
ATmega48PA/88PA/168PA
8-bit Timer/Counter0 (TC0) with PWM
© 2018 Microchip Technology Inc.
Datasheet Complete
DS40002011A-page 139