Jump to content
FLProg.PRO

"Сверхскоростной" счётчик


Recommended Posts

Столкнулся с необходимостью точного измерения коэф. заполнения низкочастотного (40...1000 Гц) ШИМ-сигнала. Штатный скоростной счётчик в режиме измерения длительности импульса и паузы справляется с этим на ура и выдаёт результаты в микросекундах. Но эти результаты всегда кратны 4, т.е. разрешающая способность измерений скоростным счётчиком 4 мкс.

На Хабре в статье "Оценка методов измерения низких частот на Arduino" https://habr.com/ru/articles/373213/ этому даётся аргументированное объяснение. Там же приводится код на Си, который позволяет увеличить разрешающую способность измерений до 1 мкс.
Прошу разработать соответствущий блок.

Link to comment
Share on other sites

@kipiaxxx а что же  Вы совсем ленитесь?

Примеры просто идеальные для запихивания в ПБ Basic.

Все что надо изменить, так это тупо выкинуть инициализацию UART и вывод в него. А все остальное вообще без переделок. 

Единственный нюанс в том, что все примеры рассчитаны исключительно на AVR и на других архитектурах работать не будут.

 

Не ленимся!

Пихаем все в блок, а что не получится, подскажу по ходу.

 

Здесь инструкции

https://forum.flprog.ru/viewtopic.php?f=187&t=7597

 

Link to comment
Share on other sites

32 минуты назад, kipiaxxx сказал:

"У меня лапки", в смыле моск не воспринимает код.

Наговариваете на себя. :classic_smile:

Ладно, сделаем мастер класс по одному из ваших примеров. Чуть позже.

  • Haha 1
Link to comment
Share on other sites

В 27.04.2023 в 13:55, kipiaxxx сказал:

Ну прям... совсем застыдили...

"У меня лапки", в смыле моск не воспринимает код.

Вы, - Шахтер, наверное...

Link to comment
Share on other sites

4 часа назад, kulibinsvv сказал:

Чтобы понятнее было...

Норм!!!

Спойлер

"Мы га*на не боимся!!!" Тоже

 

 

Edited by Abay
Link to comment
Share on other sites

В 28.04.2023 в 15:50, Dryundel сказал:

мастер-класс здесь.

Опробовал Тестовый_блок_2_(Code_-_Basic).ubi в версии FLProg 7.3.8 на Ардуино-нано.

На вход D8 подключил проводник, на который наводилось сетевое напряжение. Результаты измерений (1 - период; 2 - частота) выводил через UART:

Спойлер

20008  0.000000
20008  0.000000
19988  0.000000
19996  0.000000
19992  0.000000
19996  0.000000
19976  0.000000
20004  0.000000
20008  0.000000
19996  0.000000
19996  0.000000
19996  0.000000
20008  0.000000
19984  0.000000
19988  0.000000
20004  0.000000
20004  0.000000
20000  0.000000
19996  0.000000
20000  0.000000
20004  0.000000
20000  0.000000
20000  0.000000
20000  0.000000
19996  0.000000
19988  0.000000
20048  0.000000
20004  0.000000
20000  0.000000
19996  0.000000
20000  0.000000
20012  0.000000

Таким образом:

- ПБ измеряет период правдоподобно (для частоты 50 Гц период - 20000 мкс), но все результаты по-прежнему кратны 4 мкс, а нужны с разрешением в 1 мкс  :задумался:

- частоту ПБ не вычисляет, но мне это и не нужно.

Кроме того нужно измерять отдельно длительность и паузу импульсов.

Как я понимаю, ПБ сделан на базе 1-го варианта из статьи на Хабре, а надо бы использовать "Способ 2. Идеологически правильный: задействуем Timer1".

Link to comment
Share on other sites

1 час назад, kipiaxxx сказал:

Как я понимаю, ПБ сделан на базе 1-го варианта из статьи на Хабре, а надо бы использовать "Способ 2. Идеологически правильный: задействуем Timer1".

Действуем один в один по мастер-классу. Если будут ошибки, выкладываем здесь.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...