HT46R064D/065D/066D
Enhanced A/D Type 8-Bit OTP MCU with LED Driver
Timer/Event Counters
The provision of timers form an important part of any microcontroller, giving the designer a means of
carrying out time related functions. The devices contain from one to three count-up timer of 8-bit
capacity. As the timers have three different operating modes, they can be configured to operate as a
general timer, an external event counter or as a pulse width capture device. The provision of an internal
prescaler to the clock circuitry on gives added range to the timers.
There are two types of registers related to the Timer/Event Counters. The first is the register that
contains the actual value of the timer and into which an initial value can be preloaded. Reading from
this register retrieves the contents of the Timer/Event Counter. The second type of associated register
is the Timer Control Register which defines the timer options and determines how the timer is to be
used. The device can have the timer clock configured to come from the internal clock source. In
addition, the timer clock source can also be configured to come from an external timer pin.
Configuring the Timer/Event Counter Input Clock Source
The Timer/Event Counter clock source can originate from various sources, an internal clock or an
external pin. The internal clock source source is used when the timer is in the timer mode or in the
pulse width capture mode. For some Timer/Event Counters, this internal clock source is first divided
by a prescaler, the division ratio of which is conditioned by the Timer Control Register bits
T0PSC0~T0PSC2. For Timer/Event Counter 0, the internal clock source can be either fSYS or the LXT
Oscillator, the choice of which is determined by the T0S bit in the TMR0C register.
An external clock source is used when the timer is in the event counting mode, the clock source being
provided on an external timer pin TCn. Depending upon the condition of the TnEG bit, each high to
low, or low to high transition on the external timer pin will increment the counter by one.
Timer Registers - TMR0, TMR1
The timer registers are special function registers located in the Special Purpose Data Memory and is
the place where the actual timer value is stored. These registers are known as TMR0 and TMR1. The
value in the timer registers increases by one each time an internal clock pulse is received or an external
transition occurs on the external timer pin. The timer will count from the initial value loaded by the
preload register to the full count of FFH at which point the timer overflows and an internal interrupt
signal is generated. The timer value will then be reset with the initial preload register value and
continue counting.
Note that to achieve a maximum full range count of FFH, the preload register must first be cleared to
all zeros. It should be noted that after power-on, the preload registers will be in an unknown condition.
Note that if the Timer/Event Counter is in an OFF condition and data is written to its preload register,
this data will be immediately written into the actual counter. However, if the counter is enabled and
counting, any new data written into the preload data register during this period will remain in the
preload register and will only be written into the actual counter the next time an overflow occurs.
Rev. 1.00
45
January 12, 2011