Page 190 - Programming Microcontrollers in C
P. 190
Timers 175
0000 #define RT0 0
0001 #define RT1 1
0004 #define RTIE 4
0005 #define TOFE 5
0006 #define RTIF 6
0007 #define TOF 7
0001 #define TRUE 1
0000 #define FALSE 0
0001 #define FOREVER while(TRUE)
00C0 00C1 00C2 int hrs,mts,sec;
00C3 int count;
main(void)
{
0300 3F C3 CLR $C3 count=0;
0302 11 08 BCLR 0,$08 TCST.RT0=0;
0304 13 08 BCLR 1,$08 TCST.RT1=0;
0306 18 08 BSET 4,$08 TCST.RTIE=1;
0308 1D 08 BCLR 6,$08 TCST.RTIF=0;
030A 1F 08 BCLR 7,$08 TCST.TOF=0;
030C 9A CLI CLI();
FOREVER
{
030D B6 C2 LDA $C2 if(sec==60)
030F A1 3C CMP #$3C
0311 25 18 BCS $032B
{
0313 3F C2 CLR $C2 sec=0;
0315 3C C1 INC $C1 if(++mts==60)
0317 B6 C1 LDA $C1
0319 A1 3C CMP #$3C
031B 26 0E BNE $032B
{
031D 3F C1 CLR $C1 mts=0;
031F 3C C0 INC $C0 if(++hrs==13)
0321 B6 C0 LDA $C0
0323 A1 0D CMP #$0D