Авторизация


...

Кто на сайте?

Сейчас 95 гостей и один зарегистрированный пользователь на сайте

  • oegerwilm

Статистика

-Посетители : 26505
-Материалы : 210

Пользователь сайта продает...

  Стенд для освоения программирования МК AVR

Пользователь сайта покупает...

ПП приема кода JVC с ИК пульта

Автор: Алексей Черепанов (г. Архангельск), Игорь Безверхний (г. Киев) Просмотров: 4147

 

 

За основу была взята программа по распознаванию кода RC5, которую написал один из авторов этой статьи Алексей Черепанов. Данная программа унаследовала от своей предшественницы те же преимущества, компактность кода, не требовательность к ресурсам контроллера, скорость работы. Несмотря на то, что длительность пачки импульсов примерно 30000-35000 мкс, распознавание всей пачки импульсов от пульта отнимает у основной программы только около 120-130 мкс! Достигнута такая экономия за счет переключения фронтов прерываний по INT0. Таким образом, нет нужды при обнаружении начала посылки ожидать в прерывании следующего перепада.

Данная программа рассчитана под тактовую частоту 12 МГц. При необходимости ее можно пересчитать под любой кварц, для этого возможно придется переключить предделитель TMR0 на другое значение и возможно, пересчитать константы. Таймер должен переполняться по истечении 650 мкс для синхробита, и после 2000 мкс для бита. Также для синхроимпульса необходимо пересчитать константу, чтобы проверить его правильность. До переполнения таймера в этом случае должно оставаться не более 200 мкс. Т.е. должно выполняться условие: синхроимпульс > 450 мкс, но < 650 мкс. Для значащего бита необходимо высчитать константу, когда до переполнения останется примерно 1000 мкс. Если времени пройдет более 1000мкс, то принята единицу, если менее, то ноль. Очень важно помнить, что предустановки таймера выбраны таким образом, что любое переполнение таймера при приеме посылки будет означать ошибку приема. Именно поэтому в программе нет проверок на максимальное значение. Эта проверка всегда одна в двух первых строчках подпрограммы прерывания. Т.е. если таймер переполнен, это автоматически означает ошибку приема, но если таймер переполнен, и прерывание произошло по спаду, то это всегда будет означать начало приема посылки с ИК пульта ДУ. Это условие необходимо для правильного определения начала посылки, если его не соблюдать, то правильно принять код с пульта будет практически невозможно. Для правильной работы программы необходимо:

1.   Настроить TMR0 на работу как 8 разрядный счетчик с внутренней синхронизацией.

2.   Установить предделитель как 1:32

3.   Включить прерывание по INT0 по спаду. Хотя важнее просто включить прерывание по INT0, а фронт автоматически переключится так, как нужно.

На рисунке представлен алгоритм работы программы

 

 

 

Исходник программы можно скачать здесь

Случайные статьи....

Prev Next

Применение Base64-кодирования в МК.

17-12-2012 Николай Викторов

Применение Base64-кодирования в МК.

Кодирование Base64  в микроконтроллерах хоть и не так часто, но все-таки применяется. По этому и было принято решение написать данную статью в надежде что эта информация кому нибудь поможет в реализации задуманного.  Самому  пришлось столкнуться  с  кодировкой  Base64  когда появилась...

ПП стирания Flash памяти программ.

28-05-2012 Super User

 Стирание Flash памяти программ производится блоками по 64 байта, последние 6 бит регистра TBLPTR (TBLPTRL) сбрасываются и соответственно в адресации не участвуют, а значит граница стираемого блока всегда на границе  адреса мл.байта  TBLPTRL  ХХ00 0000. Перед выполнением подпрограммы необходимо указать адрес...

Вариант создания клавиатуры без прерываний

19-02-2011 Александр Милевский

Вариант создания клавиатуры без прерываний

Как известно, управление индикатором на основе HD44780, ведется по шине данных. Это 8 или 4 занятых порта контроллера. Практически все время «простаивают». Вот и подумал, чем бы их еще занять. После копаний в Интернете родился вариант «для меня» универсальной клавиатуры, которым...

Монитор электросети.

29-10-2014 Kapiton

Монитор электросети.

Статья предоставлена для публикации автором под псевдонимом «Kapiton». В данной статье автор рассказывает о своем устройстве контроля и регистрации различных показаний электросети 220 вольт, что позволяет оценить качество подаваемого питания электроснабжающей организацией…            


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru