Авторизация


...

Кто на сайте?

Сейчас 137 гостей и 2 зарегистрированных пользователей на сайте

  • inmiernikwesto

Статистика

-Посетители : 23739
-Материалы : 209

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

  MRF24J40MA-I/RM

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

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

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

 

 

За основу была взята программа по распознаванию кода 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

Запись в память программ PIC18XXXX.

26-05-2012 Николай Викторов

Запись в память программ PIC18XXXX.

Это часть статьи, из самоучителя по микроконтроллерам семейства PIC18XXXX, затрагивающая запись данных в память программ . Процесс записи данных в память программ  отличается от чтения, хотя и используется подобная TBLRD инструкция для табличной записи - TBLWT. Так же  имеет несколько разновидностей,...

Искатель скрытой проводки (PIC12F629).

12-12-2012 Иван Шевченко (R1ZK)

Искатель  скрытой  проводки  (PIC12F629).

  Лето – кому дача, а кому время ремонта… Решил переделать проводку в квартире. Нашёл в интернете прибор для поиска скрытой проводки на PIC12F629.Источник – журнал Радио №2-2006 стр.44.Программа написана на Си, есть исходник и прошивка.Прибор реагирует на диапазон частот от...

Работа с SD/MMC картой.

08-04-2013 Super User

Работа с SD/MMC картой.

   В данной статье рассмотрим один из способов  применение в своих устройствах SD (Secure Digital Memory Card) далее SDC и MMC карт (Multi Media Card),  которые на сегодняшний день являются самыми популярными картами памяти для различных устройств как в промышленности,...

Контроллер радиолюбительского репитера на ATtiny13

12-09-2012 Иван Шевченко (R1ZK)

Контроллер радиолюбительского репитера на ATtiny13

    Данный контроллер разрабатывался для управления радиолюбительским репитером на диапазон 2 метра. В составе: приёмник – Motorola GS-950, передатчик – Vertex FTL-2011. Возможности контроллера...          


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

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