Atmega32(l) – Rainbow Electronics ATmega32L User Manual

Page 75

Advertising
background image

75

ATmega32(L)

2503C–AVR–10/02

Figure 33. Phase Correct PWM Mode, Timing Diagram

The Timer/Counter Overflow Flag (TOV0) is set each time the counter reaches BOT-
TOM. The interrupt flag can be used to generate an interrupt each time the counter
reaches the BOTTOM value.

In phase correct PWM mode, the compare unit allows generation of PWM waveforms on
the OC0 pin. Setting the COM01:0 bits to 2 will produce a non-inverted PWM. An
inverted PWM output can be generated by setting the COM01:0 to 3 (see Table 41 on
page 79). The actual OC0 value will only be visible on the port pin if the data direction
for the port pin is set as output. The PWM waveform is generated by clearing (or setting)
the OC0 Register at the compare match between OCR0 and TCNT0 when the counter
increments, and setting (or clearing) the OC0 Register at compare match between
OCR0 and TCNT0 when the counter decrements. The PWM frequency for the output
when using phase correct PWM can be calculated by the following equation:

The N variable represents the prescale factor (1, 8, 64, 256, or 1024).

The extreme values for the OCR0 Register represent special cases when generating a
PWM waveform output in the phase correct PWM mode. If the OCR0 is set equal to
BOTTOM, the output will be continuously low and if set equal to MAX the output will be
continuously high for non-inverted PWM mode. For inverted PWM the output will have
the opposite logic values.

TOVn Interrupt Flag Set

OCn Interrupt Flag Set

1

2

3

TCNTn

Period

OCn

OCn

(COMn1:0 = 2)

(COMn1:0 = 3)

OCRn Update

f

O Cn PCPW M

f

clk_I/O

N

510

------------------

=

Advertising