
Rev. 1.40
72
March 29, 2019
Rev. 1.40
73
March 29, 2019
HT45F23A/HT45F24A
TinyPower
TM
Flash MCU with OPA & Comparators
HT45F23A/HT45F24A
TinyPower
TM
Flash MCU with OPA & Comparators
When the Timer/Event counter overflows, its corresponding interrupt request flag in the interrupt
control register will be set. If the timer interrupt is enabled this will in turn generate an interrupt
signal. However irrespective of whether the interrupts are enabled or not, a Timer/Event counter
overflow will also generate a wake-up signal if the devices are in a Power-down condition. This
situation may occur if the Timer/Event Counter is in the Event Counting Mode and if the external
signal continues to change state. In such a case, the Timer/Event Counter will continue to count
these external events and if an overflow occurs the devices will be woken up from its Power-down
condition. To prevent such a wake-up from occurring, the timer interrupt request flag should first be
set high before issuing the HALT instruction to enter the Power Down Mode.
Timer Program Example
This program example shows how the Timer/Event Counter registers are setup, along with how the
interrupts are enabled and managed. Note how the Timer/Event Counter is turned on, by setting bit
4 of the Timer Control Register. The Timer/Event Counter can be turned off in a similar way by
clearing the same bit. This example program sets the Timer/Event Counter to be in the timer mode,
which uses the internal system clock as the clock source.
org
04h
;
external
interrupt
vector
org 0ch ; Timer/Event Counter 0 interrupt vector
jmp tmrint ; jump here when the Timer/Event Counter 0 overflows
:
org
20h
;
main
program
; internal Timer/Event Counter 0 interrupt routine
:
tmrint:
; Timer/Event Counter 0 main program placed here
:
reti:
:
begin:
;
setup
Timer
0
registers
mov
a,09bh
;
setup
Timer
0
preload
value
mov tmr0,a;
mov a,081h ; setup Timer 0 control register
mov tmr0c,a ; timer mode and prescaler set to /2
;
setup
interrupt
register
mov a,009h ; enable master interrupt and timer interrupt
mov intc0,a
set tmr0c.4 ; start Timer/Event Counter 0 - note mode bits must be previously
;
setup