|
|
  |
алгоритм для записи пульта в AVR, помогите пожалуйста :( |
|
|
|
May 12 2008, 04:19
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(=AK= @ May 12 2008, 01:52)  То есть, вы пытаетесь сделать "обучаемый" приемник, способный настраиваться на любой ИК пульт? Бросьте эту затею, это совершенно точно задача не для начинающих. В общем виде она скорей всего вообще не решается. Вряд ли вы представляете себе, насколько разнообразны ИК протоколы в пультах, поэтому поставили себе задачу, с которой не справитесь. Очень даже решается. И если система не будет работать с каким-нибудь чудо-пультом от супернавороченной автомагнитолы - это не такая уж проблема. Ну, еще от кондиционеров пульты точно не подойдут...
|
|
|
|
|
May 12 2008, 08:32
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
а как решают эту проблему в выключателях? по моему сделан "обучаемый" приемник, способный настраиваться на любой ИК пульт. чаще встречаются пульты от NEC a, а мне очень знакомо протокол RC-5, я уже написла код и нормально работает, но только с RC-5 не обойтись  , а у SONY совсем другой протокол. " 3. при следующем прерывании пишем в массив текущее значение таймера и сбрасываем таймер. " дорогой Клим скажите пожалуйста 1. какой таймер мне надо настроить и запустить? 2. текущее значение таймера что означает? тоесть инкрементировать? так как я сделал? или взять значение TCNT0?
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
May 12 2008, 08:39
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(VAHOO @ May 12 2008, 11:32)  1. какой таймер мне надо настроить и запустить? 2. текущее значение таймера что означает? тоесть инкрементировать? так как я сделал? или взять значение TCNT0? 1. Какой не жалко их там в меге аж 3 штуки. 1 из них, еще нужно будет использовать для слежения за фазой. (Или регулировки яркости не будет?) 2. Текущее значение таймера при прерывании =время предыдущего импульса (или паузы). Брать TCNTx
|
|
|
|
|
May 12 2008, 09:03
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
Цитата(Клим @ May 12 2008, 12:39)  1. Какой не жалко их там в меге аж 3 штуки. 1 из них, еще нужно будет использовать для слежения за фазой. (Или регулировки яркости не будет?) 2. Текущее значение таймера при прерывании =время предыдущего импульса (или паузы). Брать TCNTx регулировки яркости будет, а таймер0 8 разр. настроить на 1 мкс?
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
May 12 2008, 09:08
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(VAHOO @ May 12 2008, 12:03)  регулировки яркости будет, а таймер0 8 разр. настроить на 1 мкс? Там смотреть надо, какая максимально длина импульса может быть(и паузы) Чтоб таймера хватило. А 1мкс - это очень мало. Там модуляция идет 38кгц - так что меньше 25мкс - смысла нету.
|
|
|
|
|
May 12 2008, 09:18
|

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

|
Цитата(Клим @ May 12 2008, 13:49)  Очень даже решается. И если система не будет работать с каким-нибудь чудо-пультом от супернавороченной автомагнитолы - это не такая уж проблема. Ну, еще от кондиционеров пульты точно не подойдут... Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редким Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC, где в соседних рамках инвертируется часть битовых полей. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д. А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.
|
|
|
|
|
May 12 2008, 09:18
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
Цитата(Клим @ May 12 2008, 13:08)  Там смотреть надо, какая максимально длина импульса может быть(и паузы) Чтоб таймера хватило. А 1мкс - это очень мало. Там модуляция идет 38кгц - так что меньше 25мкс - смысла нету. Извините, Клим, но я с вами не согласен, у меня есть монжество протоколв, по моему надо настроить по махимум длини между импулсами, а махимум примерно 9000 мкс, а модуляция сигнала здесь не причем, по моему надо настроить таймер на 10 милисекунд,
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
May 12 2008, 09:23
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
Цитата(=AK= @ May 12 2008, 13:18)  Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редки Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.
А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается. мне надо только что-бы работал с пультов от телика, ДВД, видек, это достаточно.
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
May 12 2008, 09:28
|
Местный
  
Группа: Свой
Сообщений: 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)  По поводу удержания кнопок и повторных посылок. Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши. В разных протоколах - по разному
|
|
|
|
|
May 12 2008, 09:33
|
Частый гость
 
Группа: Участник
Сообщений: 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 после первой посылки отправляет только стартовый импулс.
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
May 12 2008, 09:36
|

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 после первой посылки отправляет только стартовый импулс. А ведь есть протоколы, которые делают с точностью до наоборот: сначала посылают "стартовый" пакет, а потом повторяют информационные пакеты.
|
|
|
|
|
May 12 2008, 09:44
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

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