Если пользователь вводит команду At, то MSP430 работает в качестве кодера между RS232 входным портом и ИК выходным портом. Таймер Timer_A и порты инициализированы следующим образом (см. также описание схемы в главе 5):
• RS232 вход (сигнале TXD) => порт Р2.5
• IrDA выход (TSLM1100) => порт Р2.4 (CCR2)
Длительность полупериода бита загружена в регистр CCR0, а таймер Timer_A установлен в режим увеличения/уменьшения (Up/Down). Второй модуль захвата/сравнения подключается к линии Р2.4 и осуществляет захват регистра сравнения CCR2, в который загружено значение регистра CCR0 за минусом значения, соответствующего длительности ИК импульса 1.63 мкс.
При передаче второй управляющий регистр захвата/сравнения (CCTL2) установлен в режиме формирования сброса. Это означает, что каждый раз, когда в регистре таймера Timer_A (TAR) устанавливается значение, равное значению в регистре CCR2, то на линии Р2.4 устанавливается низкий логический уровень, а когда устанавливается значение, равное значению в регистре CCR0, то на этой линии устанавливается высокий логический уровень.
Когда таймер Timer_A запускается, то он увеличивает свое значение до значения, равного CCR0, а потом ведет обратный отсчет, после чего опять запускается и снова увеличивает свое значение до CCR0. Пока таймер Timer_A работает, в каждый битовый период без вмешательства вычислительного ядра формируется импульс длительностью 1.63 мкс.