|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||||||
Как посчитать длительность Прямоугольного импульса (Меандр)30.01.2014, 17:45. Показов 12378. Ответов 22
Метки нет (Все метки)
Доброго времени суток .
Поставленная задача : при поступлении сигнала МК должен отсчитывать время действия данного сигнала , т.е. его продолжительность ( от 0 до t1 на нижеприведенном рисунке ). Затруднения вызваны тем , что сигнал представляет собой Прямоугольные импульсы , Меиндр . <Изображение удалено> Старался написать программу , ниже приведена часть(и) исходного кода программы . Проверял при поступающем сигнале частотой 1Гц ( собственно будет использоваться только данная частота ), работает нормально . Имеются небольшие сомнения , на счет того , что программа вряд ли будет работать при небольшом изменении частоты поступающего сигнала (0.8 Гц , 0.9ГЦ , 1.1Гц ) . Хотелось бы "универсальную" программу/алгоритм .
<Изображение удалено>
0
|
||||||
| 30.01.2014, 17:45 | |
|
Ответы с готовыми решениями:
22
Длительность импульса RESET Как влияет длительность импульса на спектр фаз или амплитуд периодического сигнала? |
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 30.01.2014, 18:00 | ||
Например: это спадающий фронт ровно третьего импулься. Или так: это момент, после которого в течение такого-то времени сигнал остаётся нулём. Как?
0
|
||
|
0 / 0 / 0
Регистрация: 30.06.2012
Сообщений: 177
|
|
| 30.01.2014, 18:02 | |
|
Найдите книгу Ревича Ю.В. - "Практическое программирование Микроконтроллеров Atmel AVR на языке ассемблера 2-е издание 2011г". Начиная со страницы 164 почитайте... Мне помогло
0
|
|
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 18:10 | ||
Например: это спадающий фронт ровно третьего импулься. Или так: это момент, после которого в течение такого-то времени сигнал остаётся нулём. Как? Время сигнала задается в другом контроллере ( может быть любое ) , соответственно сказать какому импульсу момент t1 принадлежит невозможно . Это собственно и усложняет задачу .
0
|
||
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 18:12 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 30.01.2014, 18:17 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 18:23 | ||
При спадающем фронте , после которого сигнал остаётся нулевым .
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 30.01.2014, 18:35 | |
|
Попробую объяснить за shirysom, раз он не в состоянии. если я правильно понял, надо просто определить длительность пачки импульсов.
тогда нужно: ждать, когда вход перейдёт в 1, начать отсчитывание времени как только вход перейдёт в 0, записать время, но не прекращать счёт если вход будет в 0 больше, чем максимальное время паузы (зависит от частоты и скважности), то значит импульсы закончились и временем пачки нужно считать записанное время, если импульс опять появился - продолжаем дальше. и так пока не наступит большая пауза. для определения длительности паузы тоже нужно завести счётчик (его нужно обнулять при каждом переходе с 1 в 0)
0
|
|
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 18:45 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 18:54 | ||
А дальше можно поподробней .
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 30.01.2014, 19:00 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|||
| 30.01.2014, 19:04 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 19:08 | ||
Дорости еще надо
0
|
||
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
|
| 30.01.2014, 19:15 | |
|
Интервал времени между импульсами 1 секунда ( может чуть отличаться , примерно в общем 1сек ) , сколько импульсов в пачке не известно ( их количество нам скорей всего и не пригодится ) .
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
||
| 30.01.2014, 19:24 | ||
А дальше можно поподробней . ну я вроде и так подробно описал. для подсчёта паузы либо просто в цикле увеличиваете счётчик (при таких интервалах ошибки не скажутся), либо другой таймер используете, если он есть, но не забывайте обнулять., и как только пауза будет больше скажем 1,1 сек - считываем записанное время - это и есть длительность пачки. если же опять импульс пришёл за паузу - просто продолжим
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 30.01.2014, 19:38 | |
|
кстати а можно один таймер использовать для всего, просто обнуляем его и при переходе с 0 в 1 и с 1 в 0. только при переходе с 1 в 0 прибавляем к счётчику длительности пачки, а в паузе - к счётчику пачки и к счётчику паузы (это если разрядности таймера не хватит и счётчик придётся заводить, а может и не надо - достаточно в цикле считывать показания таймера и сравнивать с критическим временем паузы). так и красивее и проще, вроде
0
|
|
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
||
| 30.01.2014, 19:40 | ||
для подсчёта паузы либо просто в цикле увеличиваете счётчик (при таких интервалах ошибки не скажутся), либо другой таймер используете, если он есть, но не забывайте обнулять., и как только пауза будет больше скажем 1,1 сек - считываем записанное время - это и есть длительность пачки. если же опять импульс пришёл за паузу - просто продолжим Тогда получается записанную паузу с реальной паузой сравнивать после спадающего фронта ?
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 30.01.2014, 19:44 | |
|
конечно: фронт упал и после этого мы непрерывно считываем длительность паузы и постоянно сравниваем её с критическим значением, если критическое значение превышено - всё - используем записанное ранее время, если опять импульс пришёл - прибавляем время паузы к счётчику пачки и продолжаем
0
|
|
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
|
| 30.01.2014, 20:48 | |
|
О результатах отпишусь позже . На счет завтра , в субботу отписаться не смогу , только в воскресенье .
0
|
|
|
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 69
|
|||||||
| 01.02.2014, 14:27 | |||||||
Все регистры Temp , Temp1 , Temp4 , Count_Time , Signal_Time и Pouse_Time до прерывания равны 0 .
0
|
|||||||
| 01.02.2014, 14:27 | |
|
Помогаю со студенческими работами здесь
20
Измерить длительность импульса Длительность импульса с энергетическим критерием Значение функции на интервале превышающем длительность импульса Спектр прямоугольного импульса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|