|
Практическое использование схемы/блока захвата в 16ти разрядных таймерах AVR Mega |
|
|
|
 |
Ответов
|
May 27 2009, 13:50
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Если эта тема коррелирует с той, в которой топикстартер делает приемник прямого усиления, то корреляционный прием в течении 1мс - как раз. У него добротность входного контура выходит порядка 50  Да, кстати. Небольшое улучшение кода коррелятора Код volatile struct { UINT8 I50; UINT8 Q50; UINT8 I51; UINT8 Q51; };
__flash UINT8 bitcount_table[256] @ FLASHEND-0xFF; __root __flash UINT8 reference_sig[128] @ FLASHEND-0xFF-0x80;
volatile UINT8 Int_Idx; //Начальное значение - 0x80
__interrupt void ProcessIntegrators(void) { UINT8 __flash *r=(UINT8 __flash *)(FLASHEND-0xFF-0x100)+Int_Idx; //Текущее положение в таблице опорных сигналов UREG sig_i50; UREG sig_q50; UREG sig_i51; UREG sig_q51; sig_i50=sig_q50=sig_i51=sig_q51=SPDR; sig_i50^=*r++; //Операция умножения входного сигнала на опорные sig_q50^=*r++; sig_i51^=*r++; sig_q51^=*r++; Int_Idx=(int)r; //Сохранение указателя sig_i50=bitcount_table[sig_i50]; //Подсчет единичных бит sig_q50=bitcount_table[sig_q50]; sig_i51=bitcount_table[sig_i51]; sig_q51=bitcount_table[sig_q51]; I50+=sig_i50; //Собственно интегрирование Q50+=sig_q50; I51+=sig_i51; Q51+=sig_q51; } И результат CODE RSEG CODE:CODE:NOROOT(1) // 15 __interrupt void ProcessIntegrators(void) ProcessIntegrators: // 16 { ST -Y, R31 ST -Y, R30 ST -Y, R22 ST -Y, R21 ST -Y, R20 ST -Y, R19 ST -Y, R18 ST -Y, R17 ST -Y, R16 IN R21, 0x3F // 17 UINT8 __flash *r=(UINT8 __flash *)(FLASHEND-0xFF-0x100)+Int_Idx; //Текущее положение в таблице опорных сигналов LDS R16, (_A_I50 + 4) LDI R31, 62 MOV R30, R16 // 18 UREG sig_i50; // 19 UREG sig_q50; // 20 UREG sig_i51; // 21 UREG sig_q51; // 22 sig_i50=sig_q50=sig_i51=sig_q51=SPDR; IN R17, 0x2E MOV R16, R17 MOV R18, R17 MOV R20, R17 MOV R22, R17 // 23 sig_i50^=*r++; //Операция умножения входного сигнала на опорные LPM R17, Z+ EOR R22, R17 // 24 sig_q50^=*r++; LPM R17, Z+ EOR R20, R17 // 25 sig_i51^=*r++; LPM R17, Z+ EOR R18, R17 // 26 sig_q51^=*r++; LPM R17, Z+ EOR R16, R17 // 27 Int_Idx=(int)r; //Сохранение указателя STS (_A_I50 + 4), R30 // 28 sig_i50=bitcount_table[sig_i50]; //Подсчет единичных бит // 29 sig_q50=bitcount_table[sig_q50]; MOV R30, R20 LDI R31, 63 LPM R20, Z // 30 sig_i51=bitcount_table[sig_i51]; MOV R30, R18 LPM R18, Z // 31 sig_q51=bitcount_table[sig_q51]; MOV R30, R16 LPM R16, Z // 32 I50+=sig_i50; //Собственно интегрирование MOV R30, R22 LPM R17, Z LDI R30, LOW(_A_I50) LDI R31, (_A_I50) >> 8 LD R19, Z ADD R19, R17 ST Z, R19 // 33 Q50+=sig_q50; LDD R17, Z+1 ADD R17, R20 STD Z+1, R17 // 34 I51+=sig_i51; LDD R17, Z+2 ADD R17, R18 STD Z+2, R17 // 35 Q51+=sig_q51; LDD R17, Z+3 ADD R17, R16 STD Z+3, R17 // 36 } OUT 0x3F, R21 LD R16, Y+ LD R17, Y+ LD R18, Y+ LD R19, Y+ LD R20, Y+ LD R21, Y+ LD R22, Y+ LD R30, Y+ LD R31, Y+ RETI
Так быстрее немного
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
Сообщений в этой теме
Буратино Практическое использование схемы/блока захвата в 16ти разрядных таймерах AVR Mega May 26 2009, 12:09 Rst7 Для избавления от дрожания по времени момента счит... May 26 2009, 12:11 Буратино Цитата(Rst7 @ May 26 2009, 16:11) Для изб... May 26 2009, 12:26  _Pasha Цитата(Буратино @ May 26 2009, 15:26) Ско... May 26 2009, 12:36 Rst7 Ну если Вас качество внутреннего компаратора устра... May 26 2009, 12:33 Rst7 Цитатаможет Вам проще счетчик событий сделать а не... May 26 2009, 12:44 Буратино Время измерения частоты должно быть минимальным, н... May 26 2009, 12:48 _Pasha Цитата(Буратино @ May 26 2009, 15:48) Вре... May 26 2009, 12:56 Rst7 ЦитатаВремя измерения частоты должно быть минималь... May 26 2009, 12:49 Буратино Цитата(Rst7 @ May 26 2009, 16:49) Цифры ж... May 26 2009, 12:56 Rst7 ЦитатаБыло бы замечательно ,если бы я смог отделит... May 26 2009, 13:00 _Pasha Походу, тут без корреляционного приема не обойтись... May 26 2009, 13:06 Rst7 ЦитатаОно и понятно - вчерашний день
Да хоть поза... May 26 2009, 13:10 Буратино Цитата(Rst7 @ May 26 2009, 17:00) Огласит... May 26 2009, 13:12 _Pasha Цитата(Буратино @ May 26 2009, 16:12) Дру... May 26 2009, 13:16  Буратино Цитата(_Pasha @ May 26 2009, 17:16) Не, В... May 26 2009, 13:28   _Pasha Цитата(Буратино @ May 26 2009, 16:28) и ... May 26 2009, 13:41 Rst7 Вы бы более глобально задачу обрисовали. А то что-... May 26 2009, 13:14 Rst7 Цитатаи вообще зачем так усложнять?
Если Вы хотит... May 26 2009, 13:34 Буратино Цитата(Rst7 @ May 26 2009, 17:34) Если Вы... May 26 2009, 13:43 Goodefine Случайно, не об этой ли проблеме идет речь? May 26 2009, 13:40 Rst7 ЦитатаСлучайно, не об этой ли проблеме идет речь?
... May 26 2009, 13:50 _Pasha Цитата(Rst7 @ May 26 2009, 16:45) Корреля... May 26 2009, 13:56 Буратино Цитата(Rst7 @ May 26 2009, 17:50) Устроит... May 26 2009, 13:58 _Pasha Цитата(Буратино @ May 26 2009, 16:58) Но ... May 26 2009, 14:20 singlskv Цитата(Буратино @ May 26 2009, 17:58) Но ... May 27 2009, 13:32 Rst7 ЦитатаSPI занят радиоканалом
В принципе SPI нужен... May 26 2009, 14:03 Буратино Цитата(Rst7 @ May 26 2009, 18:03) В принц... May 26 2009, 14:06 Goodefine Помехи в полезный сигнал (при его наличии) пролазя... May 26 2009, 14:05 Rst7 ЦитатаНо для общего развития намекните приблизител... May 26 2009, 14:11 Буратино Цитата(Rst7 @ May 26 2009, 18:11)
Цит... May 26 2009, 14:25 Rst7 ЦитатаЕсли частота выборки 1.6 Мгц не вызывает воз... May 26 2009, 14:40 _Pasha Цитата(Rst7 @ May 26 2009, 17:40) Предлаг... May 26 2009, 14:44 Rst7 Давайте попробуем.
Сначала немного теории на паль... May 27 2009, 07:13 BORIV Теперь нарисуем таблицу умножения в наших терминах... Jun 22 2009, 15:14  ReAl Цитата(BORIV @ Jun 22 2009, 18:14) Значит... Jun 22 2009, 17:09   BORIV Цитата(ReAl @ Jun 22 2009, 21:09) Измеряе... Jun 22 2009, 17:36 singlskv Цитата(Rst7 @ May 27 2009, 17:50) Если эт... May 27 2009, 13:56 Rst7 ЦитатаНу а вот теперь представьте себе высокочасто... May 27 2009, 14:02 singlskv Цитата(Rst7 @ May 27 2009, 18:02) Что мне... May 27 2009, 14:13 Буратино Если получится с резонансным усилителем на входе, ... May 27 2009, 14:28 singlskv Цитата(Буратино @ May 27 2009, 18:28) Есл... May 27 2009, 14:36 Rst7 ЦитатаНе ожидал от Вас услышать такое...
Да ладно... May 27 2009, 15:47 singlskv Цитата(Rst7 @ May 27 2009, 19:47) Да ладн... May 27 2009, 18:36 SSerge Цитата(Rst7 @ May 27 2009, 21:47) Хотя, л... May 27 2009, 19:46 Буратино Скажите, а вывод схемы захвата ICP1 (Timer/Counter... Jun 4 2009, 19:00 _Pasha Цитата(Буратино @ Jun 4 2009, 22:00) Скаж... Jun 5 2009, 08:43 Буратино Сделал в итоге так:
наполняю массив из 20ти значен... Jun 22 2009, 05:54 Rst7 ЦитатаСпасибо, давно так не смеялся. Люблю математ... Jun 22 2009, 15:40 BORIV Цитата(Rst7 @ Jun 22 2009, 19:40) Ну-ка н... Jun 22 2009, 15:44 Rst7 ЦитатаПротив чего?
Против описанного алгоритма пр... Jun 22 2009, 15:58 Rst7 ЦитатаПродолжайте...
Я не думаю, что нас удостоят... Jun 22 2009, 17:18 Rst7 ЦитатаВы согласны, что получив результат с погрешн... Jun 22 2009, 17:49 BORIV Цитата(Rst7 @ Jun 22 2009, 21:49) Очень с... Jun 22 2009, 18:24 Rst7 ЦитатаЯ смеялся над неподходящим объяснением
Прив... Jun 22 2009, 19:09 BORIV Цитата(Rst7 @ Jun 22 2009, 23:09) Приведи... Jun 22 2009, 21:38 Rst7 ЦитатаНе хочу я Вас развлекать. Сами развлекайтесь... Jun 23 2009, 05:17 BORIV Цитата(Rst7 @ Jun 23 2009, 09:17) Вы нас ... Jun 23 2009, 05:49 Rst7 ЦитатаИ всё это прекрасно видно из приведённых Вам... Jun 23 2009, 06:57 BORIV Цитата(Rst7 @ Jun 23 2009, 10:57) Любезны... Jun 23 2009, 10:40 Rst7 Последний раз спрашиваю, у Вас есть возражения к м... Jun 23 2009, 10:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|