| Автор |
Съобщение |
|
WDW
Ранг: Популярен
Регистриран на: Сря Окт 26, 2005 12:36 am Мнения: 353
|
Това с UART-е добра идея ! Не бях се замислял !
Аз правих за RC-5 и там през определен интервал проверявах нивото и го записвах в регистъра ! Лесна работа !!
Но тия протоколи на сони а и на нек са си голям кошмар!На мен ми трябва да правя за нек и още не мога да си избистря алгоритъма !За съжаление повечето протоколи са повече от 8 бита !! Но винаги можеш да си избереш кое да четеш и кое не !
_________________ Сичкото що е транзистор за илядо и пестотин волта се е BU ...
|
| Пет Апр 28, 2006 11:32 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
аз това с UARTA не мога да го схвана  (
|
| Съб Апр 29, 2006 10:48 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ами то наистина си е добра идея, но трябва да пробвам, струва ми се че ще е доста зависимо от baudrate-а и често ще се получава collusion на приемника
PS @syrax, просто четеш какви символи пристигат на UART като натиснеш бутон, използваш факта, че UART тръгва да чете когато получи старт-бит и това, че е хардуер - не се налага да полираш на едно място за сигнал. Предполагам ефекта ще се постигне с достатъчно нисък baudrate, може би 2400 за Sony дистанционните. Иначе погледнете линка, който дадох, там има код на C за четене на NEC и SONY дистанционни
Последна промяна Predator_MF на Съб Апр 29, 2006 10:56 am, променена общо 1 път
|
| Съб Апр 29, 2006 10:52 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
опитах това но и снего не става: беше за PIC аз му направих малко подобрения и пак се дъни
void Irq_Start(void) interrupt 0
{
EX0 = 0; // disable the IRQ
for(i=0; i<7; i++)
{
sony_tick();
temp = IR;
if(temp != 0) return;
}
temp = IR;
while(temp == 0){temp = IR;}
sony_tick();
for(i=0; i<7; i++)
{
// temp = IR;
if(IR != 1) return;
sony_tick();
sony_tick();
// temp = IR;
if(IR != 0) return;
sony_tick();
sony_tick();
// temp = IR;
if(IR == 0)
{
command |= 0x80;
sony_tick();
sony_tick();
}
command = command >> 1;
LED = ~LED;
}
command = command & 0x7f;
// for(broika=0; broika<10; broika++){ sony_tick();}
code_detect = 1;
}
|
| Съб Апр 29, 2006 10:55 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
между другото приемника ми е TFM 5560 и незнам на каква честота работи ако някой знае да каже  ) защото нямам приемник на 40Khz имам и един на 38 Khz може да ги сменя
|
| Съб Апр 29, 2006 11:00 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
To тва не е от значение, Sony са на 38-40KHz а приемниците в повечето случаи хващат от 35 до 50, но така или иначе това е само носещата честота на предавателя, тя се филтрира и на изхода излиза само кода
|
| Съб Апр 29, 2006 11:41 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
ще правя още опити докато стане ло6ото е че нямам осциллоскоп и не мога да следя какво става и малко на тъмно правя настройките, но мился че кода е добър не би трябвало да има проблеми , но не е така
|
| Съб Апр 29, 2006 11:43 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ako имаш CCP като хардуер, пробвай с него, бях си написал елементарен приемник в PIC12F683, получените числа (16 битови) ги пращам като ASCII по RS232, получава се една поредица от 16 битови числа, първите 10 ми стигаха за да разпозная кода, с малко доработка ще се получи T2T...кода не ми е на този компютър, като се прибера ще се разровя за него
|
| Съб Апр 29, 2006 12:31 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
какво е ССР / извинявам се за тъпия въпрос/ ама с контролери и електроника се занимавам от 4 месеца - самоучение/
мога да пробвам да пращам някакви данни по RS, това сам си го мислил 
|
| Съб Апр 29, 2006 12:36 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Capture-Compare модул - приеми го като 16 битов таймер който можеш да спираш/пускаш от един крак на процесора, не знам с какви процесори мъчиш, но прочети на PIC16F877 даташийта, ще го разбереш 
|
| Съб Апр 29, 2006 12:49 pm |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
пореден ден и пак провал, значи вързах чипа сериино с компа и броя дължината на импулсите..... има големи разлики между предаванията на сигнали и направо ще лудна 
|
| Вто Май 02, 2006 10:05 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
TFM 5560 - е серия TFM 5xx0 или 56Кх
|
| Вто Май 02, 2006 10:56 am |
|
|