INSiraJMENTS

; Первая смена состоя-; ния через 0.71мс ; 1/(2x697) = 0.71мс

MOV R5,&CCR1 MOV R5,&CCR2 ; Fetch the two cycle counts for the DTMF frequencies


MOV.B STDTMF+1,R5

Верхняя частота DTMF

MOV FDTMFHI(R5),DTMFHI ; Длительность

MOV.B STDTMF,R5

полупериода

Нижняя частота DTMF

MOV DTMFLO(R5),DTMFLO ; Длительность

полупериода

Счётчик длительности

RRA R5 ; Prepare byte index

MOV.B DTMFL(R5),LENGTH ; число смен состо­яния нижней частоты MOV #OMT+CCIE,&CCTL1 /Инверсия выхода,

прерывание разр.

MOV #OMT+CCIE,&CCTL2 /Инверсия выхода,

прерывание разр. Возврат в основной цикл

; Обработчик прерывания от CCR0 (здесь не используется)

TIMMOD0

RETI

; Обработчик прерываний от регистров захвата-сравнения

; 1..4


 
 


TIM HND ADD &TAIV,PC
RETI  
JMP HCCR1
JMP HCCR2
JMP HCCR3

Обработка запроса с наивысшим приори­тетом

нет запроса прерыва­ния: RETI

запрос от CCR1 (ниж­няя частота DTMF) запрос от CCR2 (вер­хняя частота DTMF) запрос от CCR3