Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
///. Интерфейс с внешними устройствами
Каждый спадающий фронт на порту Р1.2 вызывает прерывание, и MSP430 начинает выполнять подпрограмму обработки прерывания.
Выполнение подпрограммы обработки прерывания начинается через шесть циклов после появления прерывания. Сначала на линии Р1.1 устанавливается низкий логический уровень, а модуль CCR0 устанавливается в режим только вывода. После этого таймер Timer_A сбрасывается путем установки бита CLR в регистре TACTL, а флаг прерывания CCR1 сбрасывается.
ISR выполняется за 25 + 6 циклов. Поэтому при работе на частоте 3.6864 МГц (период 271.2 не) подпрограмма выполняется за 31 * 271.2 не = 8.407 мкс. При обмене данными со скоростью 115.2 кбит/сек минимальное время между прерываниями-8.68 мкс. Вышеупомянутая подпрограмма обработки прерывания выполняется быстрее, позволяя обеспечивать прием данных без потерь.
Так как каждый спадающий фронт на порту Р1.2 формирует прерывание и, следовательно, низкий логический сигнал на линии RS232, то свечение флуоресцентных ламп и помехи от других приборов могут формировать ошибочные биты. Время между спадающим и нарастающим фронтами может быть измерено при помощи второго модуля захвата/сравнения и сопоставлено с длительностью IrDA импульса, что позволит устранить ошибки. Для достижения этого модуль CCR2 должен быть установлен в режим захвата по нарастающему фронту. Так как CCR1 срабатывает по спадающему фронту, то значения этих регистров могут быть сравнены в подпрограмме обработки прерывания. Если длительность импульса меньше, чем 1.6 мкс - 0.22 мкс, то импульс признается ложным. Однако для этого требуется повысить рабочую частоту микроконтроллера или снизить скорость передачи данных.
Дата публикования: 2014-11-18; Прочитано: 311 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!