IrDA-SIR декодер (приемник)

Если пользователь вводит команду Лг, то MSP430 работает в качестве де­кодера между ИК входом и выходом RS232. Таймер Timer_A приостанавливает­ся, а порты инициализируются следующим образом (см. также описание схемы в главе 5):

• IrDA вход (TSLM1100) => порт Р1.2

• RS232 выход (RXD) => порт Р1.1 (CCR0)

Длительность битового периода загружается в регистр периода CCR0, а Timer_A устанавливается в режим увеличения состояния до значения, равно­го содержимому регистра CCR0, после чего он сбрасывается и снова начинает считать до значения CCR0. Нулевой модуль захвата/сравнения подключается к порту Р1.1.

При приеме регистр управления захватом/сравнением (CCTLO) находится в режиме установки. Это означает, что каждый раз, когда значение регистра таймера Timer_A (TAR) становится равным значению регистра CCR0, на порту Р1.1 устанавливается высокий логический уровень.

Если мы запускаем таймер Timer_A, то он увеличивает свое значение, а когда его состояние сравнивается со значением, записанным в регистре CCR0, то на линии Р1.1 устанавливается высокий уровень, после чего он перезапус­кается и снова считает до CCR0 снова. В течение всего времени работы таймер Timer_A постоянно устанавливает на порту Р1.1 высокий уровень.

ИК приемопередатчик формирует на порту Р1.2 инвертированный сигнал. Это означает, что спадающий фронт устанавливает на порту Р1.1 низкий логи­ческий уровень и перезапускает таймер. После этого таймер Timer_A синхрони­зируется с ИК сигналом. Когда таймер достигает значения CCR0 (длительность