После обнаружения старт бита (распознавания шести периодов 'SPACE'), модуль захвата/сравнения Timer_A.CCRO переходит в режим сравнения и запускается каждую 1/300 секунды (в соответствии со скоростью передачи данных). Каждый раз, когда ISR запускается, используется мажоритарное декодирование для определения какой последний бит был принят. В результате этого определяется состояние выхода Р1.2, а затем счетчики очищаются, чтобы подготовиться к демодуляции следующего бита (см. рисунок 12).
Для отслеживания количества принятых битов байта используется переменная (BitCounter). После принятия восьми битов прерывания от Timer_ A.CCRO запрещаются и формируется стоп бит. Результирующий поток данных формируется на выходе Р1.2 со скоростью 300 бит/сек. На рисунке 13 показаны эпюры принимаемого и декодированного сигналов.
Рис. 13. Взаимодействие ISR от Timer_A.CCR1 и CCR0
Внешне выход Р1.2 подключен ко входу модуля USART0 (вывод URXD0). Для формирования потока данных и обеспечения интерфейса с внешним устройством (например, ПК) модуль USART используется в режиме UART (см. рисунок 14). Соответствующее прерывание от приемника может использоваться для захвата принятых байтов.