
Timer Interface Module (TIM1)
Functional Description
MC68HC908GR60A MC68HC908GR48A MC68HC908GR32A
Data Sheet
MOTOROLA
Timer Interface Module (TIM1)
259
Figure 17-4. PWM Period and Pulse Width
17.3.4.1 Unbuffered PWM Signal Generation
Any output compare channel can generate unbuffered PWM pulses as described
changing the pulse width requires writing the new pulse width value over the old
value currently in the TIM1 channel registers.
An unsynchronized write to the TIM1 channel registers to change a pulse width
value could cause incorrect operation for up to two PWM periods. For example,
writing a new value before the counter reaches the old value but after the counter
reaches the new value prevents any compare during that PWM period. Also, using
a TIM1 overflow interrupt routine to write a new, smaller pulse width value may
cause the compare to be missed. The TIM1 may pass the new value before it is
written to the timer channel (T1CHxH:T1CHxL) registers.
Use the following methods to synchronize unbuffered changes in the PWM pulse
width on channel x:
When changing to a shorter pulse width, enable channel x output compare
interrupts and write the new value in the output compare interrupt routine.
The output compare interrupt occurs at the end of the current pulse. The
interrupt routine has until the end of the PWM period to write the new value.
When changing to a longer pulse width, enable TIM1 overflow interrupts and
write the new value in the TIM1 overflow interrupt routine. The TIM1
overflow interrupt occurs at the end of the current PWM period. Writing a
larger value in an output compare interrupt routine (at the end of the current
pulse) could cause two output compares to occur in the same PWM period.
NOTE:
In PWM signal generation, do not program the PWM channel to toggle on output
compare. Toggling on output compare prevents reliable 0% duty cycle generation
and removes the ability of the channel to self-correct in the event of software error
or noise. Toggling on output compare also can cause incorrect PWM signal
generation when changing the PWM pulse width to a new, much larger value.
TCHx
PERIOD
PULSE
WIDTH
OVERFLOW
OUTPUT
COMPARE
OUTPUT
COMPARE
OUTPUT
COMPARE
TCHx
POLARITY = 1
(ELSxA = 0)
POLARITY = 0
(ELSxA = 1)