реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> алгоритм для записи пульта в AVR, помогите пожалуйста :(
Клим
сообщение May 12 2008, 04:19
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(=AK= @ May 12 2008, 01:52) *
То есть, вы пытаетесь сделать "обучаемый" приемник, способный настраиваться на любой ИК пульт? Бросьте эту затею, это совершенно точно задача не для начинающих. В общем виде она скорей всего вообще не решается. Вряд ли вы представляете себе, насколько разнообразны ИК протоколы в пультах, поэтому поставили себе задачу, с которой не справитесь.

Очень даже решается. И если система не будет работать с каким-нибудь чудо-пультом от супернавороченной автомагнитолы - это не такая уж проблема.
Ну, еще от кондиционеров пульты точно не подойдут...
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 12 2008, 08:32
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



а как решают эту проблему в выключателях?
по моему сделан "обучаемый" приемник, способный настраиваться на любой ИК пульт.
чаще встречаются пульты от NEC a, а мне очень знакомо протокол RC-5, я уже написла код
и нормально работает, но только с RC-5 не обойтись sad.gif , а у SONY совсем другой протокол.

" 3. при следующем прерывании пишем в массив текущее значение таймера и сбрасываем таймер. "

дорогой Клим скажите пожалуйста

1. какой таймер мне надо настроить и запустить?
2. текущее значение таймера что означает?
тоесть инкрементировать? так как я сделал?
или взять значение TCNT0?


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
Клим
сообщение May 12 2008, 08:39
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(VAHOO @ May 12 2008, 11:32) *
1. какой таймер мне надо настроить и запустить?
2. текущее значение таймера что означает?
тоесть инкрементировать? так как я сделал?
или взять значение TCNT0?

1. Какой не жалко их там в меге аж 3 штуки. 1 из них, еще нужно будет использовать для слежения за фазой. (Или регулировки яркости не будет?)
2. Текущее значение таймера при прерывании =время предыдущего импульса (или паузы).
Брать TCNTx
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 12 2008, 09:03
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(Клим @ May 12 2008, 12:39) *
1. Какой не жалко их там в меге аж 3 штуки. 1 из них, еще нужно будет использовать для слежения за фазой. (Или регулировки яркости не будет?)
2. Текущее значение таймера при прерывании =время предыдущего импульса (или паузы).
Брать TCNTx



регулировки яркости будет, а таймер0 8 разр. настроить на 1 мкс?


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
Клим
сообщение May 12 2008, 09:08
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(VAHOO @ May 12 2008, 12:03) *
регулировки яркости будет, а таймер0 8 разр. настроить на 1 мкс?

Там смотреть надо, какая максимально длина импульса может быть(и паузы) Чтоб таймера хватило.
А 1мкс - это очень мало. Там модуляция идет 38кгц - так что меньше 25мкс - смысла нету.
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 12 2008, 09:18
Сообщение #21


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Клим @ May 12 2008, 13:49) *
Очень даже решается. И если система не будет работать с каким-нибудь чудо-пультом от супернавороченной автомагнитолы - это не такая уж проблема.
Ну, еще от кондиционеров пульты точно не подойдут...

Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редким Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC, где в соседних рамках инвертируется часть битовых полей. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.

А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 12 2008, 09:18
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(Клим @ May 12 2008, 13:08) *
Там смотреть надо, какая максимально длина импульса может быть(и паузы) Чтоб таймера хватило.
А 1мкс - это очень мало. Там модуляция идет 38кгц - так что меньше 25мкс - смысла нету.


Извините, Клим, но я с вами не согласен,
у меня есть монжество протоколв, по моему надо настроить по махимум длини между импулсами,
а махимум примерно 9000 мкс, а модуляция сигнала здесь не причем, по моему надо
настроить таймер на 10 милисекунд,


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 12 2008, 09:18
Сообщение #23


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



По поводу удержания кнопок и повторных посылок.
Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши.

http://ru.wikipedia.org/wiki/%D0%9F%D1%83%...%BD%D0%B8%D1%8F

Вот тут все написано. И есть ссылки на системы кодирования.

Сообщение отредактировал DpInRock - May 12 2008, 09:22


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 12 2008, 09:23
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(=AK= @ May 12 2008, 13:18) *
Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редки Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.

А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.


мне надо только что-бы работал с пультов от телика, ДВД, видек, это достаточно.


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 12 2008, 09:27
Сообщение #25


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(VAHOO @ May 12 2008, 18:02) *
а как решают эту проблему в выключателях?

О каких выключателях идет речь?

Например, я совершенно точно знаю, что выключатели системы управления освещением C-bus, которые управляются от ИК пультов, НЕ обучаемые, протокол в них зашит намертво.
Go to the top of the page
 
+Quote Post
Клим
сообщение May 12 2008, 09:28
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(=AK= @ May 12 2008, 12:18) *
Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редки Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.

А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.

Насчет модуляции сильно отличной от 38 - то тут уже приемник просто не пропустит.
Я ж про сильно экзотические не говорю. Но лично я пробовал штук 5 различных пультов отличных от RC5 - все работало. Не захотел какой-то от Creative audigy и sony тож какой-то был. А так, это выключатель света в комнате, в которой навернякак пульт не один имеется. И хоть один будет работать. Если все совсем грустно - то в крайнем случае покупается на радиорынке любой RC5.



Цитата(VAHOO @ May 12 2008, 12:18) *
Извините, Клим, но я с вами не согласен,
у меня есть монжество протоколв, по моему надо настроить по махимум длини между импулсами,
а махимум примерно 9000 мкс, а модуляция сигнала здесь не причем, по моему надо
настроить таймер на 10 милисекунд,

У вас приемник настроен на 38кгц модуляцию. 36 с небольшими потерями тоже кушает. Все что по частоте ниже - будет очень плохо. Выше - вообще работать не будет.
А для 38кгц модуляции минимальная длина импульса 26микросекунд

Цитата(DpInRock @ May 12 2008, 12:18) *
По поводу удержания кнопок и повторных посылок.
Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши.

В разных протоколах - по разному
Go to the top of the page
 
+Quote Post
adc
сообщение May 12 2008, 09:30
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



А в чем вопрос? Поскольку приемник детектирует сигнал (обрезает засветки и помехи) то на выходе у него последовательность импульсов с интервалами в зависимости от протокола. Достаточно принимаемым контроллером определить присутствие импульсов (вообще любых!!!) и это и будет условием переключения, включения, уменьшения/увеличения яркости.
Уменьшение/увеличение яркости делаем так:
Опрос входа(периодичность хоть 1 сек) на наличие импульсов (любых импульсов) есть значит увеличиваем. Закончились- ждем следущей непрерывной посылки при которой будем уменьшать яркость и т.д.
вход в режим регулировки (чтобы случайно не срабатывало при управлении тв) можно установить по присутствию сигнала с условными интервалами пакетов.
Может вас этот вариант устроит...
Есть только вопрос с пультами которые посылают после отправки команды короткие команды подтверждения.. но думаю можно решить это алгоритмами в контроллере.


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 12 2008, 09:33
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(DpInRock @ May 12 2008, 13:18) *
По поводу удержания кнопок и повторных посылок.
Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши.

http://ru.wikipedia.org/wiki/%D0%9F%D1%83%...%BD%D0%B8%D1%8F

Вот тут все написано. И есть ссылки на системы кодирования.


ни у всех протоколов, у RC-5, PANASONIC да, а у NEC a после первой посылки отправляет
только стартовый импулс.


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
=AK=
сообщение May 12 2008, 09:36
Сообщение #29


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(adc @ May 12 2008, 19:00) *
А в чем вопрос? Поскольку приемник детектирует сигнал (обрезает засветки и помехи) то на выходе у него последовательность импульсов с интервалами в зависимости от протокола. Достаточно принимаемым контроллером определить присутствие импульсов (вообще любых!!!) и это и будет условием переключения, включения, уменьшения/увеличения яркости.
Уменьшение/увеличение яркости делаем так:
Опрос входа(периодичность хоть 1 сек) на наличие импульсов (любых импульсов) есть значит увеличиваем. Закончились- ждем следущей непрерывной посылки при которой будем уменьшать яркость и т.д.
вход в режим регулировки (чтобы случайно не срабатывало при управлении тв) можно установить по присутствию сигнала с условными интервалами пакетов.

Вот это вполне разумный и осуществимый вариант. Не протоколы изучать и декодировать, а обнаруживать сам факт ИК посылки на частоте, близкой к 38 кГц.

Цитата(VAHOO @ May 12 2008, 19:03) *
ни у всех протоколов, у RC-5, PANASONIC да, а у NEC a после первой посылки отправляет
только стартовый импулс.

А ведь есть протоколы, которые делают с точностью до наоборот: сначала посылают "стартовый" пакет, а потом повторяют информационные пакеты. smile.gif
Go to the top of the page
 
+Quote Post
VAHOO
сообщение May 12 2008, 09:44
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(Клим @ May 12 2008, 13:28) *
Насчет модуляции сильно отличной от 38 - то тут уже приемник просто не пропустит.
Я ж про сильно экзотические не говорю. Но лично я пробовал штук 5 различных пультов отличных от RC5 - все работало. Не захотел какой-то от Creative audigy и sony тож какой-то был. А так, это выключатель света в комнате, в которой навернякак пульт не один имеется. И хоть один будет работать. Если все совсем грустно - то в крайнем случае покупается на радиорынке любой RC5.
У вас приемник настроен на 38кгц модуляцию. 36 с небольшими потерями тоже кушает. Все что по частоте ниже - будет очень плохо. Выше - вообще работать не будет.
А для 38кгц модуляции минимальная длина импульса 26микросекунд
В разных протоколах - по разному


если я буду брать знаяение TCNTx, мне больше не надо по моему прерывание от таймера и здесь
модуляция ни причем


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 18:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016