Jump to content

    
Sign in to follow this  
VAHOO

алгоритм для записи пульта в AVR

Recommended Posts

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

модуляция ни причем

прерывание от таймера происходит при слишком длительной паузе. По нему определяется окончание посылки.

Про модуляцию я сказал к тому, что длина импульса на выходе из приемника не может быть меньше 26мкс.

Share this post


Link to post
Share on other sites
А в чем вопрос? Поскольку приемник детектирует сигнал (обрезает засветки и помехи) то на выходе у него последовательность импульсов с интервалами в зависимости от протокола. Достаточно принимаемым контроллером определить присутствие импульсов (вообще любых!!!) и это и будет условием переключения, включения, уменьшения/увеличения яркости.

Уменьшение/увеличение яркости делаем так:

Опрос входа(периодичность хоть 1 сек) на наличие импульсов (любых импульсов) есть значит увеличиваем. Закончились- ждем следущей непрерывной посылки при которой будем уменьшать яркость и т.д.

вход в режим регулировки (чтобы случайно не срабатывало при управлении тв) можно установить по присутствию сигнала с условными интервалами пакетов.

Может вас этот вариант устроит...

Есть только вопрос с пультами которые посылают после отправки команды короткие команды подтверждения.. но думаю можно решить это алгоритмами в контроллере.

 

нет это не устроивает :( , по моему оптимальный вариант, это сначало записать в EEPROM

а потом сравнить

Share this post


Link to post
Share on other sites
по моему оптимальный вариант, это сначало записать в EEPROM

а потом сравнить

Только ж как будете "сначало записать в EEPROM", сначала примите команду в RAM послностью, а потом уже писать в епром - там задержки большие.

Share this post


Link to post
Share on other sites
Только ж как будете "сначало записать в EEPROM", сначала примите команду в RAM послностью, а потом уже писать в епром - там задержки большие.

 

 

я так и делаю, только непонимаю почему от расстоянии, пульт от фотоприемника,

паузы между импулсами меняются???

пробал разные пульты.

Share this post


Link to post
Share on other sites
я так и делаю, только непонимаю почему от расстоянии, пульт от фотоприемника,

паузы между импулсами меняются???

пробал разные пульты.

Насколько сильно меняются ?

Осциллограмму в студию :)

Share this post


Link to post
Share on other sites
Насколько сильно меняются ?

Осциллограмму в студию :)

 

 

сейчас TSOP подключю к саунд карту и в саунд фордже посмотрю и скажу,

по моему идеальный осциллограф :)

 

сейчас TSOP подключю к саунд карту и в саунд фордже посмотрю и скажу,

по моему идеальный осциллограф :)

 

 

с расстоянии 5 см между импулсами 1111 мкс, а 1м 1156мкс :crying:

Share this post


Link to post
Share on other sites

Вы читали или не читали мою ссылку? В пустую, что-ли?

Ничего там не меняется. Сто раз делал такие приемники.

 

Алгоритм простой. Измеряете длительность посылок 0 и 1. Сохраняете эти числа в РАМ. Все. Дальше их можно превратить в код (см. документацию про RC5). А можно и не превращать. Тогда сравнивать одну посылку с другой следует с неким допуском погрешности для измеренных числе.

 

Задача очень простая.

Share this post


Link to post
Share on other sites
сейчас TSOP подключю к саунд карту и в саунд фордже посмотрю и скажу,

по моему идеальный осциллограф :)

с расстоянии 5 см между импулсами 1111 мкс, а 1м 1156мкс :crying:

Вообще мерять при 5см - это не правильно.

Можно сравнивать метр и 3 метра.

Погрешность в 4% как у вас это вполне приемлимо.

Только вот я не понял, что значит у вас "расстояние между импульсами" ? И какой пульт ? РЦ5?

Share this post


Link to post
Share on other sites
Вообще мерять при 5см - это не правильно.

Можно сравнивать метр и 3 метра.

Погрешность в 4% как у вас это вполне приемлимо.

Только вот я не понял, что значит у вас "расстояние между импульсами" ? И какой пульт ? РЦ5?

 

пульт протокол NEC, а расстояние между пульта и фотоприемника,

паузы между импулсами 1111 мкс (на 5см) и 1156 мкс (на 1м)

 

 

Вы читали или не читали мою ссылку? В пустую, что-ли?

Ничего там не меняется. Сто раз делал такие приемники.

 

Алгоритм простой. Измеряете длительность посылок 0 и 1. Сохраняете эти числа в РАМ. Все. Дальше их можно превратить в код (см. документацию про RC5). А можно и не превращать. Тогда сравнивать одну посылку с другой следует с неким допуском погрешности для измеренных числе.

 

Задача очень простая.

 

да читал вашу ссылку,

 

" Измеряете длительность посылок 0 и 1." как?

вот в чем вапрос, у разных пультов разные определение в 0 и 1

Share this post


Link to post
Share on other sites
пульт протокол NEC, а расстояние между пульта и фотоприемника,

паузы между импулсами 1111 мкс (на 5см) и 1156 мкс (на 1м)

Зато длина импульса уменьшится :)

Это вполне нормальные цифры.

" Измеряете длительность посылок 0 и 1." как?

вот в чем вапрос, у разных пультов разные определение в 0 и 1

Если вы имеете в виду логический протокол - то забудьте про него. Тут есть выход с приемника у которого - 0 когда идут ИК импульсы с частотой 38кгц и лог.1 - когда не идут. Вот время между сменами состояние и надо мерять. Причем не настолько точно.

Share this post


Link to post
Share on other sites

У вашего ПРИЕМНИКА определение 0 и 1 соответсвующее ИМЕННО ЭТОМУ приемнику.

Приемник просто демодулирует посылку. А вы превращаете эту посылку в список длительностей.

Скажем, в посылке 30 бит. Значит длина массива с длительностями будет где-нибудь 60 байт. (Первую длинную можно не учитывать, а использовать как признак начала посылки).

Если столько места нет, то превращать эти длительности тупо в биты.

Например, замерили вы следущее:

100, 30, 47, 210, 150 каких нибудь единиц времени.

Видим, что минимальная длительность бита - 30. значит превращаем эти числа в биты:

 

11101000000011111 - уже намного короче. И делать это можно по ходу действия. Только заранее забить минимальную длительность бита. Можно брать реальную (будет точнее), а можно и от балды.

Share this post


Link to post
Share on other sites
Можно же сразу анализировать 1 или 0 и писать в память сод посылки.

1. Нам неизвестна природа посылки.

2. Нам неизвестна скорость передачи

3. Единственное, что мы знаем наверняка, это то, что из приемника выходит некая последовательность уровней. Эти последовательности обычно разделены паузой. Все.

 

Записывая же напрямую битовую последовательность, мы можем напороться (и скорее всего напоремся) на ЛИШНИЕ или недостающие биты (из-за незнания точной скорости и из-за неумение ее точно поддерживать, как нами так и передатчиком).

 

То, как я описал - я лично делал. Работало со всеми пультами, которые видел приемник. Т.е. обучаемость была очень высокая. С полтыка.

Share this post


Link to post
Share on other sites
У вашего ПРИЕМНИКА определение 0 и 1 соответсвующее ИМЕННО ЭТОМУ приемнику.

Приемник просто демодулирует посылку. А вы превращаете эту посылку в список длительностей.

Скажем, в посылке 30 бит. Значит длина массива с длительностями будет где-нибудь 60 байт. (Первую длинную можно не учитывать, а использовать как признак начала посылки).

Если столько места нет, то превращать эти длительности тупо в биты.

Например, замерили вы следущее:

100, 30, 47, 210, 150 каких нибудь единиц времени.

Видим, что минимальная длительность бита - 30. значит превращаем эти числа в биты:

 

11101000000011111 - уже намного короче. И делать это можно по ходу действия. Только заранее забить минимальную длительность бита. Можно брать реальную (будет точнее), а можно и от балды.

 

тoгда последовательность будет ВСЕГДА 01010101010101010101010101010101 , по моему,

 

если не жалко поделитесь с кодом

Edited by VAHOO

Share this post


Link to post
Share on other sites
тoгда последовательность будет ВСЕГДА 01010101010101010101010101010101 , по моему,

 

если не жалко поделитесь с кодом

Да последоваельность будет именно такая. Только нас интересует длина каждого 0 и каждой диницы.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this