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

 
 
 
Reply to this topicStart new topic
> RC 5 кодер/декодер на ATmega162, Очень нужна помощь по написанию программы кодирования/декодирования
Azimov
сообщение Sep 28 2009, 10:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



Люди!!! Помогите разобраться начинающему!!!
Есть задача: на одном контроллере генерировать команду и передать ее по протоколу RC 5, а на другом принять ее и декодировать. И в соответствии с командой поменять параметры ШИМ(длину импульса) на одном из выходов (всего их должно быть 3).

Прочитал много информации на эту тему, но тк только начинаю осваивать программирование МК, то мало чего понял из этого. laughing.gif
Очень надеюсь на вашу помощь! Заранее спасибо.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 28 2009, 10:33
Сообщение #2


Гуру
******

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



Тогда осваивайте с чем-нибудь, с тем, что понимаете. Там, светодиодом поморгать. А готовых программ в гугле - просто море.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Azimov
сообщение Sep 28 2009, 10:37
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



В том то и дело, что светодиоды, кнопки и прочие мелочи уже освоил. Захотелось разобраться в чем то более высоком, вот и решил сделать этот проект....
Go to the top of the page
 
+Quote Post
baken
сообщение Sep 28 2009, 10:45
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 27-01-09
Из: г.Жирновск
Пользователь №: 44 025



Передавать будете по трем каналам, это понятно, а принимать, тоже по трем каналам? И еще вопрос, одновременно или по очереди.


--------------------
Еж - птица гордая. Не пнешь - не полетит.
Go to the top of the page
 
+Quote Post
Azimov
сообщение Sep 28 2009, 10:47
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



Судя по всему задачу объяснил не очень понятно. Исправлюсьsmile.gif

ШИМ нужны только для того чтобы менять яркость трех светодиодов подключенных к приемнику. А передавать и принимать буду по одному каналу.
Go to the top of the page
 
+Quote Post
baken
сообщение Sep 28 2009, 11:07
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 27-01-09
Из: г.Жирновск
Пользователь №: 44 025



Ну нехилую Вы себе задачку поставили. Вам нужно по таймеру передавать RC5 последовательность, и также по таймеру захватывать и расшифровывать.
Наверное лучше всего начать с передачи, чтобы телик понимал. На нем и тренироваться. Например на громкости. Увеличить, уменьшить.
Самый простой путь, это решать без таймеров в лоб. Пишете подпрограмму задержки на 13.5us. Допустим несущая у Вас 36КГц, точнее нужно выяснять по инструкции телика.
Ну и все, посылки это пачки импульсов по 32 импульса в пачке. Прямо по протоколу. И паузы между пачками такие же по 32 импульса, только ничего не выдается.
А чередование пачек и пауз как раз в RC5 описано. http://infrared.h1.ru/protocol.shtml
Управление инфракрасным светодиодом прямое, включить, 13.5us ждем, выключить, опять 13.5us ждем. И так 32 раза подряд.
Осталось по протоколу вызывать эти пачки и паузы, и можно сделать вывод команды на инфракрасный светодиод для телика.
Одно предостережение. В зависимости от режима работы, обычно инфракрасные светодиоды включают в очень тяжелом для них режиме, чтобы дальность обеспечить,
поэтому чтобы его не спалить, проследите, чтобы он был всегда выключен, и включался только во время передачи импульсов.
А как сумеете теликом управлять, пишите. Разберем приемник.


--------------------
Еж - птица гордая. Не пнешь - не полетит.
Go to the top of the page
 
+Quote Post
Azimov
сообщение Sep 28 2009, 11:15
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



Спасибо большое за совет!!! smile.gif
Go to the top of the page
 
+Quote Post
Goodefine
сообщение Sep 28 2009, 11:19
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Цитата(Azimov @ Sep 28 2009, 13:28) *
Есть задача: на одном контроллере генерировать команду и передать ее по протоколу RC 5...

А чем SAA3010 не устраивает? Одной головной болью меньше...
Цитата(Azimov @ Sep 28 2009, 13:28) *
...а на другом принять ее и декодировать...

Рабочих исходников море. Даже здесь...


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
Azimov
сообщение Sep 28 2009, 11:44
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



Исходников то много, но у меня не очень получатся разобраться в том, что там происходит... И еще такой вопрос с тактовой частотой 1МГц можно осуществить прием и декодирование?
Единственное что я пока что понял из всех исходников это то что: МК ждет внешнего прерывания от какой нибудь из ножек(INT0-2), как только изменился уровень на ножке, он уходит в обработку этого прерывания. В ней осуществляется подсчет длительности импульса. А вот дальше не очень понятно что происходит.
А на счет SAA3010 я ее хотел использовать, но решил разбираться до конца и пошел по пути наибольшего сопротивления...

Сообщение отредактировал Azimov - Sep 28 2009, 11:47
Go to the top of the page
 
+Quote Post
baken
сообщение Sep 28 2009, 11:57
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 27-01-09
Из: г.Жирновск
Пользователь №: 44 025



С 1MHz Вы сможете сделать эту штуку, но почему не использовать встроенный RC генератор на 8МГц и не рисковать. Чтобы не заморачиваться с прерываниями и инициализацией оборудования, сначала напишите работающую программу в лоб. Чтобы она без прерываний, таймеров и прочего тупо принимала и передавала Ваши данные. Как заработает, можно будет по одному куску переводить на аппаратные возможности чипа.
У программы написанной без прерываний есть преимущество. Она наглядна и понятна.


--------------------
Еж - птица гордая. Не пнешь - не полетит.
Go to the top of the page
 
+Quote Post
Azimov
сообщение Sep 28 2009, 12:04
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



4 baken:
Как я понял во всех мегах предустановленная частота 1 МГц и для того чтобы ее поменять нужно изменить определенный бит в определенном регистре? Если это так, то в каком регистре и какие биты нужно поменять? В даташите не нашел ничего про изменение частоты...

Сообщение отредактировал Azimov - Sep 28 2009, 12:06
Go to the top of the page
 
+Quote Post
baken
сообщение Sep 28 2009, 12:33
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 27-01-09
Из: г.Жирновск
Пользователь №: 44 025



В даташите изменение частоты внутреннего генератора описано в разделе фьюзы, меняется с помощью программы AVRStudio и программатора.
PS: Не надо спасибо на каждый чих писать, только тему засоряет. Мне в свое время тоже кто то помогал.

Сообщение отредактировал baken - Sep 28 2009, 12:55


--------------------
Еж - птица гордая. Не пнешь - не полетит.
Go to the top of the page
 
+Quote Post
Azimov
сообщение Sep 28 2009, 12:43
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 27-09-09
Из: Москва
Пользователь №: 52 612



Просто приятно, когда тебе помогают... Я бы в одиночку с этим всем разбирался бы год наверное...

Сообщение отредактировал Azimov - Sep 28 2009, 13:00
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 28 2009, 13:11
Сообщение #14


Гуру
******

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



Айзек, это лишний раз показывает, что вам рано идти по какому-либо пути.
Начните с кнопки, которую соедините с ножкой INT0 например. Также ножки RX и TX соедините с компом. После этого - изучайте.
RC5 вы не сделаете никогда (при текущем уровне познаний). О изучать намного способнее от простого к сложному. А от сложного к простому - это путь Шерлока, но не Айзека.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 20:12
Рейтинг@Mail.ru


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