|
|
  |
обнуление параметров |
|
|
|
Dec 9 2009, 18:11
|

Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882

|
у меня на плату с МК идет синусоида с генератора -> сигнал оцифровывается на АЦП -> происходит рассчет частоты. после выключения генератора программа в МК запоминает последние значения всех переменных и как бы "зависает", а необходимо обнулить все переменные при отключении. Если кто сталкивался с подобной проблемой - оптишитесь, пожалуйста, как вы ее решили.
--------------------
coding, кодинг, koDinГ, copyriting, printing ....
|
|
|
|
|
Dec 9 2009, 18:28
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(Sneg_87 @ Dec 9 2009, 20:11)  .. программа в МК запоминает последние значения всех переменных и как бы "зависает", Недостаточно данных для решения проблемы: 1. Что за МК ? 2. Куда "запоминает последние значения всех переменных" ? 3. А что разве кому-то еще нужны "обнуленные данные " в МК после его выключения ? 4. Непонятно что откуда и куда идет : "у меня на плату с МК идет синусоида с генератора" - это как ? В общем ничего непонятно из сказанного Вами
|
|
|
|
|
Dec 9 2009, 19:04
|

Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882

|
Цитата(OLEG_BOS @ Dec 9 2009, 23:28)  Недостаточно данных для решения проблемы: 1 микроконтроллер AT91SAM7A3 2 в программе есть место для хранения переменных. какая память используется для хранения не знаю 3 микроконтроллер не выключается, выключается генератор. Дело в том, что после выключения ГЧ на выходе АЦП получается "плавающее" значение (ввиду наводок), а его не должно быть т.к. генератор физически отключен. в этом вся и загвоздка. Поэтому и необходимо обнулять параметры после выключения генератора. 4 на плату с микроконтроллером идет от генератора-частоты (ГЧ-...) сигнал Цитата(rezident @ Dec 9 2009, 23:43)  Sneg_87, какой диапазон частот измеряете и какой у вас временной период для выдачи результата частоты? ИМХО период подсчета частоты слишком большой. Диапазон частот от 0,1 Гц до 6,5кГц, в среднем время измерения одного периода около 40 мс (в зависимости от частоты), время индикации в этих же пределах. Усреднение по частоте происходит каждый 2000 отсчет из 50 000. Если 2000 отсчет попадает на середину или в момент близкий к концу периода сигнала, то алгоримт домеряет до последнего значения периода. Где может произойти ошибка, если частота будет около 0. ЗЫ насчет "знаками препинания" - приму к сведению.
Причина редактирования: Излишнее цитирование.
--------------------
coding, кодинг, koDinГ, copyriting, printing ....
|
|
|
|
|
Dec 10 2009, 04:11
|

Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882

|
Цитата(SasaVitebsk @ Dec 10 2009, 01:46)  ну и так далее 1 до входа на АЦП стоит схема ограничивающая сигнал по амплитуде. 2 какие алгоритмы, способы используются для отфильтровки остальных составляющих? 3 если есть ссылки с "типичной" программой частотного детектора, то буду очень благодарен.
Причина редактирования: Излишнее цитирование.
--------------------
coding, кодинг, koDinГ, copyriting, printing ....
|
|
|
|
|
Dec 10 2009, 08:10
|

Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882

|
Цитата(Dog Pawlowa @ Dec 10 2009, 10:06)  1 Ну так что мешает анализировать амплитуду сигнала до схемы ограничения? 2 Нет ограничения - данные о частоте не действительны. 1 микросхема может "сгореть" от перенапряжения. и схема ограничения еще помимо прочего убирает наводимые шумы, поэтому до нее мерять можно, конечно, но не желательно. 2 а вот эту фразу не понял. прошу пояснить Да все просто на самом деле: сигнал есть - МК измеряет необходимые параметры сигнала, сигнала нет - все параметры по нулям. вот и взя задача, только как ее решить?
--------------------
coding, кодинг, koDinГ, copyriting, printing ....
|
|
|
|
|
Dec 10 2009, 09:46
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(Sneg_87 @ Dec 10 2009, 10:10)  сигнала нет - все параметры по нулям. вот и взя задача, только как ее решить? Как первый вариант, можна организовать дополнительную схему индикации полезного сигнала: пиковый детектор + компаратор. Вход компаратора настраивается на минимальную амплитуду полезного сигнала. Выход компаратора подключается к порту контроллера. Если полезный сигнал отсутсвует (его амплитуда ниже порогового уровня), на входе порта контроллера будет "0" - что значит полезного сигнала нет и данные нужно обнулить Второй вариант сделать тоже самое, но с помощью программного алгоритма  Определяем пиковые значения сигнала за интервал времени, усредняем его сравниваем с пороговым уровнем, в зависимости от результата обнуляем данные или делаем дальнейшие преобразования. Выбор варианта реализации зависит от того на сколько загружен МК сторонними задачами.
|
|
|
|
|
Dec 10 2009, 11:01
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Цитата(Sneg_87 @ Dec 9 2009, 22:04)  Диапазон частот от 0,1 Гц до 6,5кГц, в среднем время измерения одного периода около 40 мс (в зависимости от частоты), время индикации в этих же пределах.
Усреднение по частоте происходит каждый 2000 отсчет из 50 000. Если 2000 отсчет попадает на середину или в момент близкий к концу периода сигнала, то алгоримт домеряет до последнего значения периода. Где может произойти ошибка, если частота будет около 0. При частоте 0,1 Гц с описанным вами алгоритмом усреднения у вас частота будет устанавливаться очень дооооолго, замучаетесь ждать. Может в этом причина? Приходилось мерять частоту от 1/60Гц до 100Гц. На нижнем пределе измерения делал таймер, отсчитывающий время от начала импульса. Если время превышало, с запасом, 80сек - считал что сигнала нет, и сбрасывал результат измерения.
Сообщение отредактировал Ant_m - Dec 10 2009, 11:02
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|