Программа декодирования

Данный документ содержит два примера программы. Программа «11х1_ rc5.s43» предназначена для декодирования сигналов RC5 протокола, а «11х1_ sirc.s43» — длядекодирования сигналов SIRC протокола. Основные части обеих программ небольшие и работают идентично. Только фоновое программное обеспечение ИК декодера уникально.


Mainloop call #IR Ready
bis.w #LPM3,SR

Вызов подпрограммы подготовки ИК деко­дера

call #TXIR 2 PC

Переход в режим LPM3, остановка, снижение потребления Передатчик принял команду Проверка на соот-

call #LED_Disp

ветствие коду кнопки «Channel +» jmp Mainloop

ИК декодер активизируется из основной части путем запуска подпрограм­мы IR_Ready. Затем в основной программе идет установка регистра состояния (SR), в результате чего микроконтроллер переходит в третий режим понижен­ного потребления (LPM3). В LPM3 режиме вычислительное ядро и DCO оста­новлены, но Timer_A3 работает от ACLK с полностью активной логикой пре­рываний регистра CCR1. Даже, несмотря на то, что система находится в LPM3 режиме, Timer_A3 декодера будет работать в фоновом режиме и вырабатывать управляющие прерывания. Архитектура MSP430 автоматически активизирует вычислительное ядро и DCO после обнаружения любого разрешенного преры­вания. DCO запускается и выходит в рабочий режим менее, чем за 6 мкс. Это позволяет эффективно обрабатывать короткие пакетные события. Кроме того, после того, как произошло разрешенное прерывание, система автоматически сохраняет оригинальное состояние регистра SR в стеке и сбрасывает в нем биты активизации режимов пониженного потребления. После того, как программа обработки прерывания была обработана, команда reti (выход из прерывания) восстановит сохраненное значение регистра SR. Если это сохраненное в стеке значение не изменялось при выполнении подпрограммы обработки прерыва­ния, то система вернется в то состояние, которое было до прерывания.