SN8F2250B Series
USB 2.0 Full-Speed 8-Bit Micro-Controller
8.5.3 PWM Duty with TCxR Changing
In PWM mode, the system will compare TC0C and TC0R all the time. When TC0C<TC0R, the PWM will output logic
“High”, when TC0C≧TC0R, the PWM will output logic “Low”. If TC0C is changed in certain period, the PWM duty will
change in next PWM period. If TC0R is fixed all the time, the PWM waveform is also the same.
TC0C = TC0R
TC0C overflow
and TC0IRQ set
0xFF
TC0C Value
0x00
PWM0 Output
1
2
3
4
5
6
7
Period
Above diagram is shown the waveform with fixed TC0R. In every TC0C overflow PWM output “High, when
TC0C≧TC0R PWM output ”Low”. If TC0R is changing in the program processing, the PWM waveform will became as
following diagram.
TC0C < TC0R
PWM Low > High
TC0C > = TC0R
PWM High > Low
TC0C overflow
and TC0IRQ set
Update New TC0R!
Update New TC0R!
Old TC0R < TC0C < New TC0R
New TC0R < TC0C < Old TC0R
Old TC0R
New TC0R
New TC0R
Old TC0R
0xFF
TC0C Value
0x00
PWM0 Output
1
2
3
4
5
Period
1st PWM
Update PWM Duty
2nd PWM
Update PWM Duty
3th PWM
In period 2 and period 4, new Duty (TC0R) is set. TC0 is double buffer design. The PWM still keeps the same duty in
period 2 and period 4, and the new duty is changed in next period. By the way, system can avoid the PWM not
changing or H/L changing twice in the same cycle and will prevent the unexpected or error operation.
SONiX TECHNOLOGY CO., LTD
Page 90
Version 1.1