|
Расшифровка ДУ 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. Начало правильное?
|
|
|
|
|
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 мс
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|