Глава 3.
Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
mov.w #OUTMOD0+CCIE,&CCTLC TX Wait tst.w BitCnt |
add.w #Bitime,&CCRC
bis.w #0100h, RXTXData
rla.w RXTXData
mov.w #10,BitCnt
jnz TX_Wait ret
Временной интервал до первого бита Добавление единичного стопового бита в регистр RXTXData Добавление нулевого стартового бита Загрузка счетчика битов, 8 бит данных + SP
TXD = 1 = idle Ожидание окончания передачи
TA0_ISR ; Буфер RXTXData содержит данные UART
add.w #Bitime,&CCRC
UART_TX bic.w #OUTMOD2,&CCTLC
rra.w RXTXData
jc TX_Test
TX_Space bis.w #OUTMOD2,&CCTLC
TX_Test dec.w BitCnt
jnz TX_Next
bic.w #CCIE,&CCTLC
TX Next reti
Время до следующего бита
Принятие единицы LSB сдвигается в бит переноса
Переход —> бит = 1 Прием нуля Все биты переданы (приняты)? Следующий бит? Все биты переданы/ приняты, блокировка прерываний.
TAX ISR ; Подпрограмма обработки прерываний ; от CCR1-4 и по переполнению
add.w &TAIV,PC
reti
; Добавление к регист-
; ру таймера Timer A
; вектора смещения
; CCR0 не является
; источником
Библиотека Компэла
f& Texas