Example 93. configuring a digital one-shot – Intel 80C188XL User Manual
Page 251

TIMER/COUNTER UNIT
9-22
Example 9-2. Configuring a Square-Wave Generator (Continued)
Example 9-3. Configuring a Digital One-Shot
pop
dx
;restore saved registers
pop bx
pop ax
pop
bp
;restore caller’s bp
ret
_clock
endp
lib_80186
ends
end
$mod186
name example_timer1_1_shot_code
; FUNCTION: This function generates an active-low one-shot pulse
;
on Timer 1 output pin.
;
; SYNTAX:
extern void far one_shot(int CMPB);
;
; INPUTS:
CMPB - This is the T1CMPB value required to generate a
;
pulse of a given pulse width. This value is calculated
;
from the formula below.
;
;
CMPB = (req_pulse_width*f)/4
;
; OUTPUTS:
None
;
; NOTE:
Parameters are passed on the stack as required by
;
high-level languages
T1CNT
equ xxxxH
;substitute register offsets
T1CMPA equ xxxxH
T1CMPB equ xxxxH
T1CON
equ xxxxH
MaxCount equ 0020H
lib_80186
segment public ’code’
assume cs:lib_80186
public
_one_shot
_one_shot
proc far
push
bp
;save caller’s bp
mov
bp, sp
;get current top of stack