|
алгоритм для записи пульта в AVR, помогите пожалуйста :( |
|
|
|
May 11 2008, 19:04
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
Всем привет! уже более 3 недели мучаюсь не могу написать код, делаю выключатель который регулирует яркость и надо что-бы работал с любым пультом, тоесть надо стачало записать сигнали от пульта в EEPROM а потом сравнить, делаю проект на mega88 в CVAVR на языке СИ, протоколы пультов очень много, если я все протоколы сунул в AVR то место не будет хватать, у меня алгоритм был такой но корекно не работает, я записал временные интервалы между импулсами, но временные интервалы от растояния пульта всегда меняются.
буду рад любой информации
спасибо!
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
 |
Ответов
|
May 13 2008, 19:52
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
Цитата(DpInRock @ May 13 2008, 17:08)  Не путайте человека. Окончание интервала со стабильным значением бита определяется сменой этого самого значения. Таймер вообще не причем.
А, бит, конечно не имеет размерности времени, пока лежит в памяти. А вот при передаче уже имеет размерность времени. Объясняю еще раз. Сначала накапливаем интервал, а потом режем его на один или несколько бит, в зависимости от длины. Таким образом мы всего лишь скокращаем необходимую память для хранения принятой посылки.
Но заодно и решае проблему сравнения интервалов, если бы мы не превращали эти интервалы в биты. Ибо тогда пришлось бы как-то округлять эти интервалы при сравнении. Ибо раз от раза они будут все равно разными. у меня вапрос такой. как определить начало и конец пакета? вот я изучал эти протоколы и можно сказать что махимальная пауза между импулсами примерно 9 милисекунд, милимальная пауза между импулсами примерно 275 микросекунд, махимум тактов 48, тоесть надо делать масив из 48 битов как я понимаю надо настроить таймер так? только для нулей unsigned int MASS[48]; interrupt [TIM0_OVF] void timer0_ovf_isr(void) // prerivanie po 10ms { TCNT0=0x9E; } interrupt [EXT_INT0] void ext_int0_isr(void) { if(!PINB.1) // кагда кнопка нажата { k=1; if (!PIND.2 && i<48) // берем первые 48 тактов { TIMSK0=0x01; // вклю. TAIMER0 TCNT0=0x00; TCCR0B=0x05; while(!PIND.2); // ждем кагда будьет высокий уровень TCCR0B=0x00; // запрет TIMER0 TIMSK0=0x00; MASS[i]= TCNT0; i++; } } if (PINB.1 && k==1) // кагда кнопка отпус. { k=0; i=0; j=0; for (i=0;i<48;i++) { UCSR0B=0x08; // разреш. UART printf("%d",MASS[i]); // принт в терминал UCSR0B=0x00; // запретить UART } } } вот я так пишу, но зависимостьи расстояние между пультом и фотоприемника, разные цифры получаю
Сообщение отредактировал VAHOO - May 13 2008, 19:57
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
|
May 13 2008, 19:56
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(VAHOO @ May 13 2008, 21:52)  вот я так пишу... Moderator: Если еще будут постится неформатированные, нечитабельные куски исходников - буду просто удалять. И посты с полным ненужным цитированием - тоже.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 13 2008, 20:01
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834

|
Цитата(zltigo @ May 13 2008, 23:56)  Moderator: Если еще будут постится неформатированные, нечитабельные куски исходников - буду просто удалять. И посты с полным ненужным цитированием - тоже. извините пожалуйста! просто кагда я отправляю через ссылку никто не смотрит
--------------------
Прошивка это душа микроконтроллера!
|
|
|
|
Сообщений в этой теме
VAHOO алгоритм для записи пульта в AVR May 11 2008, 19:04 DpInRock У вас осциллограф есть? May 11 2008, 19:25 VAHOO Цитата(DpInRock @ May 11 2008, 23:25) У в... May 11 2008, 19:28 Клим Цитата(VAHOO @ May 11 2008, 22:04) у меня... May 11 2008, 19:30 yarunt Цитата(VAHOO @ May 11 2008, 22:04) Всем п... May 11 2008, 19:44 =AK= Цитата(yarunt @ May 12 2008, 05:14) В кит... May 11 2008, 22:52  Клим Цитата(=AK= @ May 12 2008, 01:52) То есть... May 12 2008, 04:19   =AK= Цитата(Клим @ May 12 2008, 13:49) Очень д... May 12 2008, 09:18    VAHOO Цитата(=AK= @ May 12 2008, 13:18) Угу. И ... May 12 2008, 09:23 DpInRock Поменяйте батарейки в пульте. Или поменяйте пульт.... May 11 2008, 19:46 VAHOO фотоприемник TSOP4838, подключил к вывду МК INT0,
... May 11 2008, 19:51 Клим Цитата(VAHOO @ May 11 2008, 22:51) фотопр... May 11 2008, 20:00 VAHOO Взял другой пульт не помогло May 11 2008, 20:08 DpInRock Никогда не использовал принт внутри прерывания.
Не... May 11 2008, 20:10 VAHOO Цитата(DpInRock @ May 12 2008, 00:10) Ник... May 11 2008, 20:20  Клим Цитата(VAHOO @ May 11 2008, 23:20) скажит... May 11 2008, 20:51 VDG Цитата(VAHOO @ May 11 2008, 23:04) если я... May 11 2008, 21:57 Ден Дело в том, что в некоторых протоколах, когда пода... May 12 2008, 02:47 VAHOO а как решают эту проблему в выключателях?
по моему... May 12 2008, 08:32 Клим Цитата(VAHOO @ May 12 2008, 11:32) 1. как... May 12 2008, 08:39  VAHOO Цитата(Клим @ May 12 2008, 12:39) 1. Како... May 12 2008, 09:03   Клим Цитата(VAHOO @ May 12 2008, 12:03) регули... May 12 2008, 09:08    VAHOO Цитата(Клим @ May 12 2008, 13:08) Там смо... May 12 2008, 09:18 =AK= Цитата(VAHOO @ May 12 2008, 18:02) а как ... May 12 2008, 09:27 DpInRock По поводу удержания кнопок и повторных посылок.
На... May 12 2008, 09:18 VAHOO Цитата(DpInRock @ May 12 2008, 13:18) По ... May 12 2008, 09:33 Клим Цитата(=AK= @ May 12 2008, 12:18) Угу. И ... May 12 2008, 09:28 VAHOO Цитата(Клим @ May 12 2008, 13:28) Насчет ... May 12 2008, 09:44  Клим Цитата(VAHOO @ May 12 2008, 12:44) если я... May 12 2008, 09:51 adc А в чем вопрос? Поскольку приемник детектирует сиг... May 12 2008, 09:30 =AK= Цитата(adc @ May 12 2008, 19:00) А в чем ... May 12 2008, 09:36 VAHOO Цитата(adc @ May 12 2008, 13:30) А в чем ... May 12 2008, 09:53  Клим Цитата(VAHOO @ May 12 2008, 12:53) по мое... May 12 2008, 09:58   VAHOO Цитата(Клим @ May 12 2008, 13:58) Только ... May 12 2008, 10:04    Клим Цитата(VAHOO @ May 12 2008, 13:04) я так ... May 12 2008, 10:13     VAHOO Цитата(Клим @ May 12 2008, 14:13) Насколь... May 12 2008, 11:16      Клим Цитата(VAHOO @ May 12 2008, 14:16) сейчас... May 12 2008, 11:28       VAHOO Цитата(Клим @ May 12 2008, 15:28) Вообще ... May 12 2008, 11:41        Клим Цитата(VAHOO @ May 12 2008, 14:41) пульт ... May 12 2008, 11:49 DpInRock Вы читали или не читали мою ссылку? В пустую, что-... May 12 2008, 11:16 DpInRock У вашего ПРИЕМНИКА определение 0 и 1 соответсвующе... May 12 2008, 14:32 VAHOO Цитата(DpInRock @ May 12 2008, 18:32) У в... May 12 2008, 17:19  Клим Цитата(VAHOO @ May 12 2008, 20:19) тoгда ... May 12 2008, 17:36 domowoj А зачем писать массив?
Можно же сразу анализироват... May 12 2008, 14:47 DpInRock ЦитатаМожно же сразу анализировать 1 или 0 и писат... May 12 2008, 15:20 DpInRock НЕТТТ!!!
Еще раз.
1. Засекаете переход... May 12 2008, 18:37 Клим Цитата(DpInRock @ May 12 2008, 21:37) НЕТ... May 12 2008, 18:38 DpInRock Отличается степенью доходчивости до клиента. Ибо е... May 13 2008, 05:13 Клим Цитата(DpInRock @ May 13 2008, 08:13) Отл... May 13 2008, 06:52  DpInRock Цитата(Клим @ May 13 2008, 10:52) Смотря ... May 13 2008, 11:41   Клим Цитата(DpInRock @ May 13 2008, 14:41) БИТ... May 13 2008, 12:35 VAHOO Цитата(DpInRock @ May 13 2008, 09:13) Отл... May 13 2008, 10:27 Клим Цитата(DpInRock @ May 13 2008, 16:08) Объ... May 13 2008, 13:48 DpInRock http://ww1.microchip.com/downloads/en/AppNotes/010... May 14 2008, 13:06 VAHOO [quote name='DpInRock' post='411047' date='May 14 ... May 14 2008, 13:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|