Datasheet
Standard Timer (TIM)
M68HC12B Family Data Sheet, Rev. 9.1
156 Freescale Semiconductor
12.5 Using the Output Compare Function to Generate a Square Wave
This timer exercise is intended to utilize the output compare function to generate a square wave of
predetermined duty cycle and frequency.
Square wave frequency 1000 Hz, duty cycle 50%
The program generates a square wave, 50 percent duty cycle, on output compare 2 (OC2). The signal
will be measured by the HC11 on the UDLP1 board. It assumes a 8.0 MHz operating frequency for the
E clock. The control registers are initialized to disable interrupts, configure for proper pin control action
and also the TC2H register for desired compare value. The appropiate count must be calculated to
achieve the desired frequency and duty cycle. For example: for a 50 percent duty, 1 KHz signal each
period must consist of 2048 counts or 1024 counts high and 1024 counts low. In essence a $0400 is
added to generate a frequency of 1 kHz.
12.5.1 Sample Calculation to Obtain Period Counts
The sample calculation to obtain period counts is:
• For 1000 Hz frequency:
– E-clock = 8 MHz
– IC/OC resolution factor = 1/(E-clock/Prescaler)
– If the Prescaler = 4, then output compare resolution is 0.5 µs
• For a 1 KHz, 50 percent duty cycle:
– 1/F = T = 1/1000 = 1 ms
– F for output compare = prescaler/E clock = 2 MHz
Figure 12-30. Example Waveform
12.5.2 Equipment
For this exercise, use the M68HC912B32EVB emulation board.
12.5.3 Code Listing
NOTE
A comment line is deliminted by a semi-colon. If there is no code before
comment, an “;” must be placed in the first column to avoid assembly
errors.
0.5 ms
NUMBER OF CLOCKS = F * D
1 ms
THEREFORE,
#CLOCKS = (2 MHz) * (0.5 ms) = 1024 = $0400
