Intel 80C186XL Computer Hardware User Manual


 
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