Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Библиотека Компэла. Ь IV. Примеры конкретных применений




Ь IV. Примеры конкретных применений

тового бита, модуль CCR1 осуществляет захват содержимого TAR и запраши­вает прерывание TA1JSR. Состояние TAR захватывается аппаратно, вызова подпрограмм обработки прерывания при этом не требуется. После захвата CCR1 программно сохраняется в регистре IRLength. После первого спадающе­го фронта осуществляется изменение фронта захвата CCR1 на нарастающий фронт, что позволит отследить конец стартового бита. Длительность инфор­мационного бита вычисляется путем вычитания из содержимого регистра TAR, сохраненного в регистре CCR1, предыдущего значения IRLength. Если полученная длительность не лежит в пределах от 2.3 мс до 2.5 мс, то про­грамма принимает решение о ложном захвате стартового бита. Правильный стартовый бит должен иметь длительность 2.4 мс. В подпрограмме обработки прерывания TA1JSR IRBit используется для считывания в обратном поряд­ке 12 информационных бит в том виде, в котором они получены. Каждый информационный бит рассчитывается путем сравнения его длительности с константой IR_Mid. Константа IR_Mid соответствует длительности 1500 мкс, которая является средним значением между длительностями бита информа­ционной единицы и информационного нуля. Если длительность принятого бита больше IR_Mid, то принимается решение о том, что принята единица, а если меньше -то ноль. Аппаратная защелка модуля Timer_A3 гарантирует, что подпрограмма обработки прерывания считает правильное значение вре­менного интервала. Программа не считывает непосредственно содержимое регистра модуля Timer_A3, а считывает захваченное в CCR1 значение тайме­ра. Также для временного хранения содержимого CCR1 используется про­граммный стек.


IR_ST_Test push.w &CCR1

sub.w IRlength,0(SP)

IR_Bit cmp.w #IR_Mid,0(SP)

IR Shift rrc.w IRData


Сохранение

содержимого

CCR1 в стеке

Последний

захваченный

временной

интервал

С=1 если

IR_RXed бит=1

Carry — > IRData


Аппаратная защелка CCR1 модуля таймера Timer_A3 позволяет одновре­менно с ИК декодером выполняться другим программам обработки событий в реальном времени. Подпрограмма ИК декодера выполняется в фоновом режиме. После проверки приема каждого бита данные помещаются в регистр IRData.





Дата публикования: 2014-11-18; Прочитано: 432 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...