Example 91. configuring a real-time clock – Intel 80C188XL User Manual

Page 247

Advertising
background image

TIMER/COUNTER UNIT

9-18

Example 9-1. Configuring a Real-Time Clock

$mod186
name example_80186_family_timer_code

;FUNCTION:

This function sets up the timer and interrupt controller

;

to cause the timer to generate an interrupt every

;

10 milliseconds and to service interrupts to

;

implement a real time clock.

;
;

Timer 2 is used in this example because no input or

;

output signals are required.

;
;SYNTAX:

extern void far set_time(hour, minute, second, T2Compare)

;
;INPUTS:

hour - hour to set time to.

;

minute - minute to set time to.

;

second - second to set time to.

;

T2Compare - T2CMPA value (see note below)

;
;OUTPUTS:

None

;NOTE:

Parameters are passed on the stack as required by

;

high-level languages

;
;

For a CLKOUT of 16Mhz,

;
;

f(timer2)

= 16Mhz/4

;

= 4Mhz

;

= 0.25us for T2CMPA = 1

;
;

T2CMPA(10ms)

= 10ms/0.25us

;

=

10e-3/0.25e-6

;

= 40000

;substitute register offsets

T2CON

equ xxxxh

;Timer 2 Control register

T2CMPA equ xxxxh

;Timer 2 Compare register

T2CNT

equ xxxxh

;Timer 2 Counter register

TCUCON equ xxxxh

;Int. Control register

EOI

equ xxxxh

;End Of Interrupt register

INTSTS equ xxxxh

;Interrupt Status register

timer_2_int

equ 19

;timer 2:vector type 19

data segment public ’data’

public _hour, _minute, _second, _msec

_hour db ?
_minute db ?
_second db ?
_msec db ?

data ends

Advertising
This manual is related to the following products: