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

 
 
> Практическое использование схемы/блока захвата в 16ти разрядных таймерах AVR Mega
Буратино
сообщение May 26 2009, 12:09
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Прочел в документации на процессор о возможности использования выхода аналогового компаратора, для управления блоком захвата счетчика Т1 в Меге. Хочу спросить, зачем вообще используется подобный режим работы счетчика? Ведь существует возможность внутри обработчика внешнего прерывания считать значения в счетных регистрах таймеров. Какой в этом смысл?
Я не просто так любопытствую. Необходимо обрабатывать (определять частоту сигнала 50-100кHz.) аналоговый сигнал. И я планирую использовать для формирования фронтов сигнала компаратор встроенный в Меге. Возможно, будет целесообразно использовать режим захвата для расчетов частоты?

Сообщение отредактировал Буратино - May 26 2009, 12:13


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение May 27 2009, 13:50
Сообщение #2


Йа моск ;)
******

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



Если эта тема коррелирует с той, в которой топикстартер делает приемник прямого усиления, то корреляционный прием в течении 1мс - как раз. У него добротность входного контура выходит порядка 50 smile.gif

Да, кстати. Небольшое улучшение кода коррелятора
Код
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


Так быстрее немного smile.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Буратино   Практическое использование схемы/блока захвата в 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


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

 


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


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