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
Текущее состояние счетчика ТА