Форум закрыт для публикаций и работает только для чтения.
Отзывы о работе магазина и товарах просим оставлять на сайте интернет-магазина https://ekits.ru

Декодируем команды пульта ДУ

Обсуждаем применение модулей Evolution. Делимся кодом. Учимся применять на практике. Читаем и смотрим уроки.
Alexl81
Сообщения: 997
Зарегистрирован: 10 окт 2010, 11:09
Откуда: Россия, Челябинская область.
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение Alexl81 » 16 окт 2012, 21:36

Спасибо, за алгоритм. Начать изучать АВ - это почти все заново нужно изучить.

dak
Сообщения: 22
Зарегистрирован: 12 сен 2012, 10:06
Откуда: г. Казань
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение dak » 17 окт 2012, 07:47

Alexl81 писал(а):Спасибо, за алгоритм. Начать изучать АВ - это почти все заново нужно изучить.
Что именно надо заново изучать?
Освоить азы пользовательского интерфейса - нужно для любой новой программы - пара вечеров. АВ имеет очень хорошо структурированный встроенный мануал и большую бибилиотеку примеров.
А всё остальное - знание структуры МК, его команд, организации разных видов памятей, работа с АЦП, ЦАП, таймерами, прерываниями и т.д. - совершенно не зависит от среды программирования. Главное чтобы в голове был порядок. Тогда и программы будут получаться красивые как конфетки 8-)

Vitalii
Сообщения: 674
Зарегистрирован: 03 фев 2011, 20:11
Откуда: Тюменская область
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение Vitalii » 20 окт 2012, 21:30

Ну вот наконец-то всё получилось. :) Оказывается, пульт передаёт посылку 9 байт, :shock: а программа DvzRcEdit сохраняет 6 байт. :( Сразу это не заметил. Теперь когда дописал ещё 3 байта, сплит-система стала реагировать. Спасибо ещё раз. ;)

Alexl81
Сообщения: 997
Зарегистрирован: 10 окт 2010, 11:09
Откуда: Россия, Челябинская область.
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение Alexl81 » 18 дек 2012, 18:19

Здравствуйте, dak. Вот начал пытаться привязать к МК ПДУ, появилось несколько вопросов. В Вашем примере в основной программе отслеживается состояние ноги (порта) на котором сидит датчик ИК? Если так, то я думаю при использовании еще чего нибудь на данном МК (речь идет к примеру ATmega48PA, ATmega8A), будет проблематично, т.к. программа всегда будет следить за состоянием ноги (порта) на которой сидит ИК датчик. Если чем то другим отвлекать программу, то не всегда будет прочитан правильно код с ПДУ (т.к. временные паузы, сигналы изменятся). Может лучше датчик ИК привязать к внешнему прерыванию (INT0, INT1)? Или все таки не будут программе мешать другие прерывания (АЦП, UART и т.д.)? На Вашем примере кроме датчика ИК есть ещё что-то (LCD не считается)?

Vitalii
Сообщения: 674
Зарегистрирован: 03 фев 2011, 20:11
Откуда: Тюменская область
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение Vitalii » 18 дек 2012, 19:51

Здравствуйте Алексей.
Мысль верная, при загрузке МК разными задачами, так и делают, чтобы не терять времени на постоянный контроль ноги для IR-кода. Как пример.

Alexl81
Сообщения: 997
Зарегистрирован: 10 окт 2010, 11:09
Откуда: Россия, Челябинская область.
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение Alexl81 » 18 дек 2012, 19:56

Здравствуйте Виталий. Значит верно мыслил. Хорошо продолжу дальше разбираться с ИК.

dak
Сообщения: 22
Зарегистрирован: 12 сен 2012, 10:06
Откуда: г. Казань
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение dak » 19 дек 2012, 07:59

Alexl81 писал(а): В Вашем примере в основной программе отслеживается состояние ноги (порта) на котором сидит датчик ИК?
:) Для того чтобы получить ответ на этот вопрос достаточно было посмотреть код примера...
Никакое состояние ноги МК программа не отслеживает. В цикле, в который могут быть включены вызовы любых подпрограмм, отслеживается значение переменной RC_cod. И если оно не равно нулю, значит модуль приёма ИК команд принял корректный код.
Декодирование команд ДУ запускается по прерыванию PCINT - Pin_Change - изменение состояния вывода МК.
Этим занимается алгоритм TSOP-NEC, являющийся обработчиком прерывания Pin_Change.

Alexl81
Сообщения: 997
Зарегистрирован: 10 окт 2010, 11:09
Откуда: Россия, Челябинская область.
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение Alexl81 » 19 дек 2012, 16:28

dak писал(а):
Alexl81 писал(а): В Вашем примере в основной программе отслеживается состояние ноги (порта) на котором сидит датчик ИК?
:) Для того чтобы получить ответ на этот вопрос достаточно было посмотреть код примера...
Никакое состояние ноги МК программа не отслеживает. В цикле, в который могут быть включены вызовы любых подпрограмм, отслеживается значение переменной RC_cod. И если оно не равно нулю, значит модуль приёма ИК команд принял корректный код.
Декодирование команд ДУ запускается по прерыванию PCINT - Pin_Change - изменение состояния вывода МК.
Этим занимается алгоритм TSOP-NEC, являющийся обработчиком прерывания Pin_Change.
Ну вот, я и говорю что корректней будет использовать прерывание. По поводу примера, из него алгоритм ясен, а вот конкретные операции из него я не знаю т.к. повторюсь что АВ не изучал. Поэтому я вопросы и задавал чтоб разобраться, если Вас это как то задело то извините больше не буду.

sorokinj
Сообщения: 1
Зарегистрирован: 14 фев 2013, 21:24
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение sorokinj » 14 фев 2013, 21:36

Уважаемый DAK или иные заинтересованные.
Нужно решить задачу.
Надо вынести кнопки ИК пульта на панель управления заменив кнопки тумблерами.
Длина проводов соединительных проводов 30-50 см
Если интересно и можете предложить обоснованное решение я готов рассмотреть Ваши условия.
Москва.
8 916 188 66 17 Евгений.

dak
Сообщения: 22
Зарегистрирован: 12 сен 2012, 10:06
Откуда: г. Казань
Контактная информация:

Re: Декодируем команды пульта ДУ

Сообщение dak » 24 дек 2015, 19:58

Ха-ха!
Я только сейчас, спустя три года понял о каких прерываниях мне толковал ALex81.
Всё верно.
Прошу прощения у ALex81 за резкий тон в последнем моём ответе (наверное невыспавшийся был...).

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость