97
8151H–AVR–02/11
ATmega128A
eration. Similarly, do not write the TCNT0 value equal to BOTTOM when the counter is
downcounting.
The setup of the OC0 should be performed before setting the Data Direction Register for the port
pin to output. The easiest way of setting the OC0 value is to use the force output compare
(FOC0) strobe bit in normal mode. The OC0 Register keeps its value even when changing
between waveform generation modes.
Be aware that the COM01:0 bits are not double buffered together with the compare value.
Changing the COM01:0 bits will take effect immediately.
14.6
Compare Match Output Unit
The Compare Output mode (COM01:0) bits have two functions. The waveform generator uses
the COM01:0 bits for defining the Output Compare (OC0) state at the next compare match. Also,
the COM01:0 bits control the OC0 pin output source.
Figure 14-4 shows a simplified schematic
of the logic affected by the COM01: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 COM01:0 bits are shown. When referring to the OC0 state, the
reference is for the internal OC0 Register, not the OC0 pin.
Figure 14-4. Compare Match Output Unit, Schematic
The general I/O port function is overridden by the output compare (OC0) from the waveform
generator if either of the COM01:0 bits are set. However, the OC0 pin direction (input or output)
is still controlled by the Data Direction Register (DDR) for the port pin. The Data Direction Regis-
ter bit for the OC0 pin (DDR_OC0) must be set as output before the OC0 value is visible on the
pin. The port override function is independent of the waveform generation mode.
The design of the output compare pin logic allows initialization of the OC0 state before the out-
put is enabled. Note that some COM01:0 bit settings are reserved for certain modes of
PORT
DDR
DQ
OCn
Pin
OCn
DQ
Waveform
Generator
COMn1
COMn0
0
1
D
ATA
B
U
S
FOCn
clk
I/O