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


Глава 7.


IrDA SIR кодер-декодер на MSP430C112


- t|rDA Pulse

Рис. З. Использование таймера Timer_A при RS232/lrDA преобразовании

Линейный драйвер RS232 интерфейса (HIN232) производит инвертирова­ние потока данных, формирование логических уровней сигнала и подачу его на линию Р2.5. Высокий уровень на линии Р2.5 представляет собой логический 0 и наоборот. Согласно IrDA стандарту логический 0 на линии RS232 представляет­ся ИК импульсом. Это означает, что нарастающий фронт на линии Р2.5 должен запустить таймер Timer_A, а спадающий - остановить его. Это обеспечивается установкой бита разрешения прерывания для линии Р2.5.

Каждое изменение состояния на линии RS232 вызывает прерывание, и MSP430 начинает выполнять подпрограмму обработки прерывания (interrupt service routine - ISR): Текст программы вверху 11 стр. описания

; Подпрограмма обработки прерывания передатчика ; TRANSMITTER RS232 (Р2.5) -» IrDA (P2.4)

*****************************************************

г

ТХ_01 BIS #04h,&TACTL ; 5

циклов

XOR R14, &TACTL /запуск/остановка
/таймера Timer A
;(режим передачи/
/приема) 4 цикла

XOR.B R13,&P2IES /изменение фронта

/выбора IR 4 цикла

BIC.B #0FFH,&P2IFG /очистка флагов

/прерывания 5 циклов

RETI / 5 циклов