| Автор |
Съобщение |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
 алгоритъм за sony IR
някой може ли да постне С алгоритъм за декодиране на деистанционно за SONY, ползвам at89s52
БЛАГОДАРЯ предварително 
|
| Пет Апр 28, 2006 10:09 am |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Ех, може би ти знаеш какво точно имаш предвид, но едва ли на някой друг става ясно
Искаш да накараш 8952 да разпознава някои команди от протокола на дистанционното ли, какво ли? Ако да - не е трудно.
|
| Пет Апр 28, 2006 11:53 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
да искам да разчитам команди от дистанционното , и след това ще си напиша програмата да ми реагира на командите, но самото четене на сигналите ми е проблем , правих опити но не се получи
мерси предварително
|
| Пет Апр 28, 2006 11:59 am |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Правил съм го, само че с PIC. И то на асемблер. Не знам дали може да ти е от полза. Но така или иначе принципа е ясен.
|
| Пет Апр 28, 2006 12:32 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
аз за асм имам кодове ама не мога да схвана принципа за това ми трябва за С
|
| Пет Апр 28, 2006 12:34 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
В общия случай всичко се свежда до измерване на време. Информацията се кодира с различни по дължина импулси - да ре4ем 10 мс импулс = 0 , 20 мс = 1. Конкретните детайли зависят от конкретния протокол, който ползва д-то. Да кажеш че няма откъде да се прочете - има.
|
| Пет Апр 28, 2006 3:13 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Начините са много, досега съм използвал два начина, единия работи във всякакъв контролер, другия изисква Capture-Compare модул. И двата начина са универсални за какви да е IR дистанционни...
Първия начин е да сканираш състоянието на входа през някакъв константен интервал от време и да записваш тази информация в достатъчно голям буфер - с 30 bytes съм ползвал в PIC16F84. После с малко обработка на единиците и нулите които си получил в буфера обработваш докато получиш T/2T изражението на кода, получават се 2 байта при мене, които всъщност са самия код на бутона от дистанционното.
Втория метод който съм ползвал е за предпочитане пред първия, ползвам CCP модул на PIC процесор (примерно), при всеки положителен фронт от IR приемника пускам CCP модула, при следващия положителен спирам, получения интервал го записвам в буфер...и така докато се напълни буфера. Предимството е че ползваш хардуер за целта и можеш да организираш работата в прекъсване, докато в главния код извършваш някаква друга работа, не се налага да чакаш за сигнал за разлика от първия метод. Накрая пак обръщаш времената в Т/2Т и получаваш кода на бутона.
Погледни това: http://www.techdesign.be/projects/011/011.htm
|
| Пет Апр 28, 2006 3:25 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
аз бях си написал кода ама не работи коректно, моя начин беше като след като имам външен интеръп от 1 към 0 почва да работи и вземам проби през определено време само че сонито не е като RC5 и ако след пулса ми е 2т/1/ променям тимера за проба и така до края вземам си само първите 7 бита защото другите не ме интересуват......... но през 2-3 пъти ми отчита друга инф. и така  ) може някой ден да стане ще пробвам по твоя начин дано да стане. ако някой друг има идея да поства  ))) ще сам благодарен пък от цялата работа може да излезе нещо
ОБЕЩАВАМ ЧЕ КАТО СТАНЕ ЩЕ ПОСТНА ЦЕЛИЯ СОРС
/free software for everyone/
|
| Пет Апр 28, 2006 3:33 pm |
|
 |
|
evc
Ранг: Напреднал
Регистриран на: Пет Окт 21, 2005 8:45 am Мнения: 499
|
На един PHILIPS ЦД плеер съм правил такъв номер, но вкарах сигнала директно в UART модула. И до сега си работи. Всичко си става автоматично, няма нужда да смяташ времена - получаваш директно цифров код. Само трябва правилно да се подбере битрейта.
_________________ Простотията е Божи дар, но човек не бива да парадира с подаръците си!
|
| Пет Апр 28, 2006 3:44 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
аз не сам запознат с тези декодиращите интеграли , гледах някаде в нета за такива ама не знам какви има тук на пазара но ме изгаря амбицията да го напрява програмно
|
| Пет Апр 28, 2006 3:49 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
и другото което ме притеснява е че незнам дали с тсоп 1138 ще стане номера при положение че сони с 40Khz имам и едно TFM5560 ама не знам за каква честота е.
|
| Пет Апр 28, 2006 3:52 pm |
|
 |
|
evc
Ранг: Напреднал
Регистриран на: Пет Окт 21, 2005 8:45 am Мнения: 499
|
UART модула на процесора! В 89С52 има. В твоя предполагам също.
_________________ Простотията е Божи дар, но човек не бива да парадира с подаръците си!
|
| Пет Апр 28, 2006 3:52 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
можеш ли да ми дадеш пример аз ползвам 89s52 има доп. таймер за разлика от 89c51 и малко повече памет иначе софта става и за 2-та ако е писан за 89с51.
|
| Пет Апр 28, 2006 3:55 pm |
|
 |
|
evc
Ранг: Напреднал
Регистриран на: Пет Окт 21, 2005 8:45 am Мнения: 499
|
Значи прочети внимателно в дейташийта как се конфигурира UART модула. Настройваш си битрейта (няма да се размине без проби - донастройки). Като се напълни буфера, получаваш прекъсване. Прочиташ си получения байт и правиш с него каквото е необходимо. Единствения препъни камък може да се окаже, ако дистанционното излъчва думи от по повече от 8 бита. Няма нищо уникално в кода нито някакви софтуерни хватки. Мога да ти го постна, но чак във вторник, понеже ми е в архива у дома.
_________________ Простотията е Божи дар, но човек не бива да парадира с подаръците си!
|
| Пет Апр 28, 2006 4:04 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
оки мерси ще сам ти благодарен ако го постнеш 
|
| Пет Апр 28, 2006 4:11 pm |
|
|