|
Расшифровка ДУ SONY, понять хочу |
|
|
|
Oct 16 2006, 19:48
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Вот есть документик, вроде доступно описывающий этот SIRC - Внизу страницы. На основе этого документа, пытаюсь декодировать сигналы пульта от муз. центра sony. Подключен приемник к ноге INT0 и ноге PORTA.6 МК TINY26. 1) Ждем прерывания 2) Пришло прерывание - запрещаем прерывания и вызываем функцию GetCode(); Функция GetCode(); 1) Выполняем цикл Код while (PORTA.6) { i++; delay_us(10); }; 2) Затем смотрим какой длины была задержка на основании подсчитанного i. Код if (21> i) return (0xFF); if (30 < i) return (0xFF); 3) Если задержка не соответствует временному интервалу, значит ошибка и возвращаем 0xFF. Начало правильное?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 21)
|
Oct 16 2006, 20:53
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(ps1x @ Oct 17 2006, 00:28)  Цитата(singlskv @ Oct 17 2006, 00:06)  Я все понял, Вы хотите управлять АВР в кастрюле с помощью пульта SONY  издеваетесь... а по делу можете что нибудь сказать? шучу По делу: Цитата(ps1x @ Oct 16 2006, 23:48)  Подключен приемник к ноге INT0 и ноге PORTA.6 МК TINY26. 1) Ждем прерывания 2) Пришло прерывание - запрещаем прерывания и вызываем функцию GetCode(); Функция GetCode(); 1) Выполняем цикл Код while (PORTA.6) { i++; delay_us(10); }; 2) Затем смотрим какой длины была задержка на основании подсчитанного i. Код if (21> i) return (0xFF); if (30 < i) return (0xFF); 3) Если задержка не соответствует временному интервалу, значит ошибка и возвращаем 0xFF. ИМХО, какой-то довольно кривой способ определения задержки, цикл while() {...} с задержкой delay_us() внутри ни к чему хорошему Вас не приведет, особенно на C. Нужно пользоваться таймерами. P.S. Здесь недавно обсуждался прием RC5, так вот некоторые приемы можно перенести и для SIRC
|
|
|
|
|
Oct 16 2006, 22:00
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567

|
Лови мож поможет.
Прикрепленные файлы
ИК1.rar ( 110.64 килобайт )
Кол-во скачиваний: 97
|
|
|
|
|
Oct 17 2006, 00:55
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(dvm11111111 @ Oct 17 2006, 02:00)  Лови мож поможет. Там в архиве хтмл файл а в нем ссылка на декодирование. И она битая (. Тут такой вопрос возник. 1ms=100000us??? А то вышло, что стартовый пульс получается от 220000 до 240000 этих самых US'ов.
|
|
|
|
|
Oct 17 2006, 05:37
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(kanzler @ Oct 17 2006, 08:57)  Цитата(ps1x @ Oct 17 2006, 06:55)  Тут такой вопрос возник. 1ms=100000us???
1ms=1000us=1000000ns А в библиотеке CVAVR delay.h delay_us это именно us? А то странный рез-тат получается по "даташиту" на стандарт ду сони стартовый пульс около 2,4 мс а у меня выходит 240 мс
|
|
|
|
|
Oct 18 2006, 09:59
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317

|
Делал прием пультов SONY (SIRC) работала сия штука... Примерный алгоритм... настраиваем вн. прерывание на 1->0 при сработке прерывания: запускаем таймер, он будет считать тики T, и перестраиваем прерывание на ->1 При следующей сработке прерывания (конец импульса): останавливаем таймер, перестраиваем прерывание на 1-> 0; смотрим. сколько было тиков, если 4 - начало посылки - обнуляем аккумулятор посылки, и сбрасываем счетчик битов = 1 (стартовый принят). Дальше смотрим счетчик битов, если от 1 до 13 - тело посылки, смотрим сколько было тиков (1 или 2) и пишем в аккумулятор 1 либо 0. Если битов уже 13 - значит все принято. Исходники должны дома лежать... завтра постараюсь выложить на http://AndryG.ho.com.ua ... в крайнем случае послезавтра -> 20 числа. Если есть вопросы -> милости просим на http://remexpert.com --> я там почти всегда
|
|
|
|
|
Oct 18 2006, 12:19
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(AndryG @ Oct 18 2006, 13:59)  Делал прием пультов SONY (SIRC) работала сия штука... Примерный алгоритм... настраиваем вн. прерывание на 1->0 при сработке прерывания: запускаем таймер, он будет считать тики T, и перестраиваем прерывание на ->1 При следующей сработке прерывания (конец импульса): останавливаем таймер, перестраиваем прерывание на 1-> 0; смотрим. сколько было тиков, если 4 - начало посылки - обнуляем аккумулятор посылки, и сбрасываем счетчик битов = 1 (стартовый принят). Дальше смотрим счетчик битов, если от 1 до 13 - тело посылки, смотрим сколько было тиков (1 или 2) и пишем в аккумулятор 1 либо 0. Если битов уже 13 - значит все принято. Исходники должны дома лежать... завтра постараюсь выложить на http://AndryG.ho.com.ua ... в крайнем случае послезавтра -> 20 числа. Если есть вопросы -> милости просим на http://remexpert.com --> я там почти всегда Спасибо, буду ждать
|
|
|
|
|
Oct 18 2006, 21:59
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567

|
Цитата(ps1x @ Oct 17 2006, 03:55)  Цитата(dvm11111111 @ Oct 17 2006, 02:00)  Лови мож поможет.
Там в архиве хтмл файл а в нем ссылка на декодирование. И она битая (. Ссылка то битая, зато исходник рабочий, только надо сначала определится какая в пульте кодировка. Исходник заточен под ШИМ 32-х битной посылки.
|
|
|
|
|
Oct 19 2006, 13:28
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(AndryG @ Oct 18 2006, 13:59)  Делал прием пультов SONY (SIRC) работала сия штука... Примерный алгоритм... настраиваем вн. прерывание на 1->0 при сработке прерывания: запускаем таймер, он будет считать тики T, и перестраиваем прерывание на ->1 При следующей сработке прерывания (конец импульса): останавливаем таймер, перестраиваем прерывание на 1-> 0; смотрим. сколько было тиков, если 4 - начало посылки - обнуляем аккумулятор посылки, и сбрасываем счетчик битов = 1 (стартовый принят). Дальше смотрим счетчик битов, если от 1 до 13 - тело посылки, смотрим сколько было тиков (1 или 2) и пишем в аккумулятор 1 либо 0. Если битов уже 13 - значит все принято. Исходники должны дома лежать... завтра постараюсь выложить на http://AndryG.ho.com.ua ... в крайнем случае послезавтра -> 20 числа. Если есть вопросы -> милости просим на http://remexpert.com --> я там почти всегда Файл не найден 404
|
|
|
|
|
Oct 19 2006, 17:48
|

Профессионал
    
Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360

|
Кстати, вот реальный сигнал с ПДУ SONY от видеокамеры. А то в статье он не только инвентирован, но и отзеркален Картинка не очень, снято звуковой картой с помощью фотодиода Вот еще ссылка: http://www.sbprojects.com/knowledge/ir/sirc.htm
--------------------
Андрей Смирнов
|
|
|
|
|
Oct 19 2006, 18:33
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(Pyku_He_oTTyda @ Oct 19 2006, 21:48)  Кстати, вот реальный сигнал с ПДУ SONY от видеокамеры. А то в статье он не только инвентирован, но и отзеркален Картинка не очень, снято звуковой картой с помощью фотодиода Вот еще ссылка: http://www.sbprojects.com/knowledge/ir/sirc.htmДа я понимаю, только вот похоже у меня руки не оттуда, а не у вас  Стартовый импульс у меня 240 мс
|
|
|
|
|
Oct 20 2006, 05:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360

|
не, 2,4 мс. Мне надо было имитировать несколько команд ПДУ (те, которые на вложении), так как немного запутался в описаниях (в реальной битности сигналов), снял последовательность подручными средствами. Добавлю, что присуствует модуляция положительных уровней частотой 40 кГц. Если вам необходимо только декодировать, то на заполнение не нужно обращать внимание, ее вычистит приемник. Кстати, бывают приемники, которые инвертируют сигнал, так что не лишне проверить осцилографом, что реально на выходе ИК приемника
--------------------
Андрей Смирнов
|
|
|
|
|
Oct 23 2006, 05:52
|
Местный
  
Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957

|
Цитата(Pyku_He_oTTyda @ Oct 20 2006, 09:04)  не, 2,4 мс. Мне надо было имитировать несколько команд ПДУ (те, которые на вложении), так как немного запутался в описаниях (в реальной битности сигналов), снял последовательность подручными средствами. Добавлю, что присуствует модуляция положительных уровней частотой 40 кГц. Если вам необходимо только декодировать, то на заполнение не нужно обращать внимание, ее вычистит приемник. Кстати, бывают приемники, которые инвертируют сигнал, так что не лишне проверить осцилографом, что реально на выходе ИК приемника Вот пример реальной команды START пульта Sony RMT814. Все таки старт 2,4 мс
--------------------
Обычно последним смеется тот, кто хуже соображает!
|
|
|
|
|
Oct 24 2006, 18:36
|

Участник

Группа: Новичок
Сообщений: 24
Регистрация: 20-10-06
Из: Алтайский край г. Барнаул
Пользователь №: 21 498

|
Цитата(=GM= @ Oct 23 2006, 19:48)  Парни, извините, немного не в тему. Где бы найти описание команд пульта DAEWOO? Перерыл весь инет, не могу найти. Пропал пульт от цифрового ТВ приемника, не спутникового, а наземного. Боюсь, жена случайно выкинула в бин(:-(. Теперь могу смотреть только одну программу... посмотрите на http://lirc.sourceforge.net/remotes/ мож найдёте файлы с кодами... на http://winlirc.sourceforge.net можете скачать прогу с исходниками и эмулировать пульт. Этой же прогой я анализировал коды пультов...
|
|
|
|
|
Oct 25 2006, 10:22
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Mixal_ @ Oct 24 2006, 17:36)  Цитата(=GM= @ Oct 23 2006, 19:48)  Парни, извините, немного не в тему. Где бы найти описание команд пульта DAEWOO? Перерыл весь инет, не могу найти. Пропал пульт от цифрового ТВ приемника, не спутникового, а наземного. Боюсь, жена случайно выкинула в бин(:-(. Теперь могу смотреть только одну программу...
посмотрите на http://lirc.sourceforge.net/remotes/ мож найдёте файлы с кодами... на http://winlirc.sourceforge.net можете скачать прогу с исходниками и эмулировать пульт. Этой же прогой я анализировал коды пультов... С первого захода прямо в точку! У меня DS608P. Спасибо огромное. Эмуляция пульта, как мне кажется, лишнее. Буду думать как изготовить свой пульт.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|