Декодирование ТВ ИК ДУ-сигналов используя Таймер A3


Init_Sys ; Инициализация системных периферийных ; устройств


StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL

SetupTA mov.w #TASSELO+MC1,&TACTL

SetupCO mov.w #OUT,&CCTL0

SetupPl bis.b #IRIN+TXD,&P1SEL

bis.b #LED0+TXD,&P1DIR

bic.b #LEDO,&P10UT

eint ret


Остановка

сторожевого

таймера

ACLK,

продолжение

PI.2 CCR1,

Pl.l CCRO

P1.0,

TXD выходы

P1.0, низкий,

светодиод

выключен

Выход из подпрограммы


IR Ready ; Подпрограмма подготовки к принятию

; 12-битных SIRC (последовательных ИК команд) ; в буфер IRData


clr.w IRData clr.w IRlength mov.b #14,IRBit

SetupCl mov.w #CM1+SCS+CAP+CCIE

ret


Два начальных фронта и 12 информационных бит

&CCTL1 ; CAP CCI1A, спадающий фронт, прерывание Выход из подпрограммы


TXIR_2_PC ; Подпрограмма передачи в ПК символов CR, LF

; и данных IRData в виде четырех ASCII бай-

; тов R15 используется в качестве рабочего

; регистра, но его состояние не сохраняется

Библиотека Компэла


f& Texas iNSiraJMENTS     IV. Примеры конкретных применений
mov #CR, RXTXData ; пересьшка символа CR
        в буфер UART
call #TX_ Byte   символ CR —> ПК/поль-
        зователю
mov #LF, RXTXData   пересьшка символа LF
        в буфер UART
call #TX_ Byte   символ —> ПК/пользо-
        вателю

ТХ Word ASCII


Передача слова из регистра IRData в виде четырех ASCII байт


 

swpb IRData   IRData =
call #TX Byte ASCII    
swpb IRData IRData =
ТХ Byte ASCII ; Передача байта из регистра IRData
  ; в виде двух ASCII байт  
mov.b IRData,R15   передача значения
      . .X.  
call #NUM ASCIR      
mov.b IRData,R15   передача значения
      . . .х  
jmp NUM ASCIA      
NUM ASCIR rrc .b R15   путь 1. и 3.
rrc. b R15      
rrc.b R15      
rrc.b R15      

NUM_ASCIA and.b #0fh,R15 add.b #030h,R15 cmp.b #03ah,R15 jlo NUM_End add.b #039,R15

NUM End mov.b Rl5,RXTXData


путь 2. и 4.

загрузка буфера передачи


ТХ Byte ; Подпрограмма передачи байта из буфера ; RXTXData при помощи CCRO UART


mov.w &TAR,&CCRC


Текущее состояние счетчика ТА