Организация задержки сигнала на Меге 2560
- Войдите на сайт для отправки комментариев
Сб, 20/02/2021 - 09:37
Добрый день, уважаемые форумчане!
Прошу совета по реализации задержки сигнала.
Задача такая, есть прямоугольный импульс, надо сгенерировать аналогичный с задержкой по времени.
В чём трудности?
Трудности в написании кода, видимо. Других тут пока не видел.
Дело в срочности. Давно не возился с микроконтроллерами, лет 5 уже.
Времени мало на реализацию. Нужно сделать задержку сигнала. Имеею четыре пакета с частотой 4 Гц по 16 импульсов частотой около 2 кГц.
На данный момент вижу картину так, по фронту первого пучка генерирую нужный сигнал.
Правильно ли я мыслю?
Трудности в написании кода, видимо. Других тут пока не видел.
Синтаксис не проблема, но логическую цепочку пока слету не могу.
Последнее время пишу на Питоне десктопные решения, Си вместе с ассемблером уже немного позабыты, но понимание есть.
Если интервалы пересекаются, т.е задержка меньше длительности активного уровня входящего сигнала, то:
1. Ждёшь активный фронт.
2. Запускаешь таймер на величину задержки. Засекаешь время.
3. После срабатывания таймера - активный уровень на выходную ногу
4. Ждёшь неактивный фронт. Считаешь длительность сигнала
5. Через время = (длительность сигнала) - (то которое ты засёк в п.2) подаешь на выходную ногу пассивный уровень. Либо опять же, через величину заданной задержки, нинаю чо дано.
6. Repeat.
Если интервалы пересекаются, т.е задержка меньше периода входящего сигнала, то:
1. Ждёшь активный фронт.
2. Запускаешь таймер на величину задержки. Засекаешь время.
3. После срабатывания таймера - активный уровень на выходную ногу
4. Ждёшь неактивный фронт. Считаешь длительность сигнала
5. Через время = (длительность сигнала) - (то которое ты засёк в п.2) подаешь на выходную ногу пассивный уровень. Либо опять же, через величину заданной задержки, нинаю чо дано.
6. Repeat.
А если период задержки больше? Вообще будет изменяемый период. Но диапазон пока неизвестен
тогда считай длительность входящего импульса. А выходной запускай через задержку от стартового.
По условиям задачи длительности одинаковы? у входного и выходного.
Пока одинаковы длительности.
Но если не хранить входящий, то разве я не упущу его на выходном?
ты определись, у тебя входящий импульс (подразумевается, одиночный), или всё же периодический сигнал, который надо повторять на выходе с задержкой?
ты определись, у тебя входящий импульс (подразумевается, одиночный), или всё же периодический сигнал, который надо повторять на выходе с задержкой?
Периодический сигнал один раз в три секунды четыре пакета в секунду, в каждом пакете 16 импульсов
Пока таймлайн не разрисуешь, ничего не получится. Сложно по телефону пиндицит вырезать
Пока таймлайн не разрисуешь, ничего не получится. Сложно по телефону пиндицит вырезать
В понедельник буду в конторе, смогу скинуть осциллограмку.
Если не затруднит, код накидать смогешь на регистрацию фронта, взвода таймера?
бесплатно на этом форуме "накидывают" только понос на вентилятор. Ну еще советы дают и направление гугленья. Если код сам писать не хочешь по советам -> на этом же форуме "Ищу исполнителя"
код накидать смогешь на регистрацию фронта, взвода таймера?
Папал ты, Дет! ;)) Яш говорил - доброта тебя погубит! Гы!
Папал ты, Дет! ;)) Яш говорил - доброта тебя погубит! Гы!
см. моё предыдущее сапщение. Нихрена я не добрый сёдня.
Папал ты, Дет! ;)) Яш говорил - доброта тебя погубит! Гы!
см. моё предыдущее сапщение. Нихрена я не добрый сёдня.
уже. Успел аправдаццо!
Вполне так доступно ответил. Уважаю прямоту. Сам писать хочу. Советы тоже должны монетизироваться или безвозмездно (то есть даром)?
Благодарю за внимание! Дай Вам бог долгих лет жизни и благополучия.
2ТС: Родное серце - не утаи, скажи, с какой точностью тебе нужны фронты в копии? - эт рас, и дфа - какие преполагаюццо задержки - порядка секунды? - часа? месяца? - до конца правления ВВП? ;)))))
Это к тому вопрос, что поместится ли весь сигнал в задержку? Тогда его нужно весь запомнить, и тогда мой первый вопрос важен - а с какой точностью его запоминать?
Советы - бесплатно. Но для советов таймлайн нужен.
Мы ж тут родом ысчо из "страны советофф", такшта советы, по старой памяти, иногда, ну там по праздникам, можно бээз-возмездно! Привычка - вторая натура, а что делать? ;))
meteoaza кури вот эту тему. Что то наподобии: "Задача функции обработки прерывания - отлов интервалов с радиоприемника. Интервал - это импульс 0 или 1 уровня, нам надо определить его длительность и собственно уровень.
Функция обработки прерывания должна вызываться каждый раз при смене уровня на входе МК, к которому подключен приемник. У нас это нога INT0, а прерывание настроено на срабатывание как по положительному так и отрицательному перепаду (фронту).
Еще раз, для закрепления - наша функция-обработчик будет автоматически вызываться на каждом фронте сигнала с приемника.
Для вычисления длительности - нам надо запоминать время последнего срабатывания прерывания, и при очередном срабатывании - вычитать из текущего времени, последнее записаное. Разность и будет длительность интервала между фронтами.
Собственно у ардуины в фоне тикает таймер, который непрерывно считает микросекунды с момента включения, нам этот таймер прекрасно подойдет." И потом, через нужный промежуток времени (задержка), дергать пином с записанной длительностью.
коли тебе срочно, то как таймлайн будет готов пиши напрямую, elf-basic@yandex.ru
коли тебе срочно, то как таймлайн будет готов пиши напрямую, elf-basic@yandex.ru
Благодарю за поддержку!