HT49C50
24
August 18, 1999
Label
(TMR1C)
Bits
Function
0~2
Unused bits, read as 0
TE
3
To define the TMR1 active edge of timer/event counter
(0= active on low to high; 1= active on high to low)
TON
4
To enable/disable timer counting
(0= disabled; 1= enabled)
TN2
5
2to1multiplexercontrolinputstoselectthetimer/eventcounterclocksource
(0= mask option clock source; 1= system clock/4)
TN1
TN0
7
6
To define the operating mode
01= Event count mode (External clock)
10= Timer mode (Internal clock)
11= Pulse Width measurement mode (External clock)
00= Unused
TMR1C register
timer/ event counter. But if the timer/event
counter is turn on, data written to the
timer/event counter is kept only in the
timer/event counter preload register. The
timer/event counter still continues its opera-
tion until an overflow occurs.
When the timer/event counter (reading
TMR0/TMR1) is read, the clock is blocked to
avoid errors. As this may results in a counting
error, blocking of the clock should be taken into
account by the programmer.
It is strongly recommended to load a desired
value into the TMR0/TMR1 register first, then
turn on the related timer/event counter for
proper operation. Because the initial value of
TMR0/TMR1 is unknown.
Due to the timer/event scheme, the program-
mershouldpayspecialattentionontheinstruc-
tion to enable then disable the timer for the
first time, whenever there is a need to use the
timer/event function, to avoid unpredicatable
result. After this procedure, the timer/event
function can be operated normally. The exam-
ple given below, using two 8-bit width Timer s
(timer 0 ;timer 1) cascade into 16-bit width.
START:
mov
mov
a, 09h
intc0, a ; enable timer 0 and
; global interrupt
; Set ET0I&EMI bits to
mov a, 01h
mov intc1, a ; timer 1 interrupt
; Set ET1I bit to enable
mov a, 80h
mov tmr1c,a ;timermodeandselectmask
; option clock source
; Set operating mode as
mov a,0a0h
mov tmr0c,a
;Setoperatingmodeastimer
;modeandselectsystem
;clock/4
set tmr1c.4
clr
tmr1c.4 ; for the first time
;Enablethendisabletimer1
mov a, 00h
mov tmr0, a
mov a, 00h
mov tmr1, a
; Load a desired value into
; the TMR0/TMR1 register
;
;
set tmr0c.4
set tmr1c.4
; Normal operating
;
END