Rev.2.00 Nov 28, 2005 page 355 of 378
REJ09B0124-0200
M16C/6N Group (M16C/6NK, M16C/6NM)
23. Usage Precaution
Under development
This document is under development and its contents are subject to change.
23.10.2.3 Timer B (Pulse Period/pulse Width Measurement Mode)
The timer remains idle after reset. Set the mode, count source, etc. using the TBiMR (i = 0 to 5) register
before setting the TBiS bit in the TABSR or TBSR register to “1” (count starts).
Always make sure the TBiMR register is modified while the TBiS bit remains “0” (count stops) regardless
whether after reset or not. To set the MR3 bit to “0” by writing to the TBiMR register while the TBiS bit =
1 (count starts), be sure to write the same value as previously written to the TM0D0, TM0D1, MR0, MR1,
TCK0 and TCK1 bits and a 0 to the MR2 bit.
The IR bit in the TBiIC register goes to “1” (interrupt request), when an effective edge of a measurement
pulse is input or timer Bi is overflowed. The factor of interrupt request can be determined by use of the
MR3 bit in the TBiMR register within the interrupt routine.
If the source of interrupt cannot be identified by the MR3 bit such as when the measurement pulse input
and a timer overflow occur at the same time, use another timer to count the number of times Timer B has
overflowed.
To set the MR3 bit to “0” (no overflow), set the TBiMR register with setting the TBiS bit to “1” and
counting the next count source after setting the MR3 bit to “1” (overflow).
Use the IR bit in the TBiIC register to detect only overflows. Use the MR3 bit only to determine the
interrupt factor.
When a count is started and the first effective edge is input, an indeterminate value is transferred to the
reload register. At this time, Timer Bi interrupt request is not generated.
A value of the counter is indeterminate at the beginning of a count. The MR3 bit may be set to “1” and
Timer Bi interrupt request may be generated between a count start and an effective edge input.
For pulse width measurement, pulse widths are successively measured. Use program to check whether
the measurement result is an “H” level width or an “L” level width.