генератор сигналов в FLProg

Вопросы по использованию встроенных в программу блоков
Аватара пользователя
alverzilin
Рядовой
Сообщения: 72
Зарегистрирован: 15.09.2016{, 00:33}
Репутация: 0
Откуда: Zlobin.BY

генератор сигналов в FLProg

#41

Сообщение alverzilin » 06.04.2017{, 16:41}

Даёшь 153,6 кГц!?)) тоже надо... но как понял, не реально((

зы. поспешил написать, не дочитав.. надо с уно получить эту частоту.. но при этом, что бы уно ещё работал как rx-tx преобразователь к юсб... слабо?
Последний раз редактировалось alverzilin 06.04.2017{, 16:49}, всего редактировалось 1 раз.
Изображение
Изображение

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

генератор сигналов в FLProg

#42

Сообщение Boroda » 06.04.2017{, 17:18}

alverzilin, 153,6 кГц - это прерывания с периодом 3,25мкс. Системный таймер Arduino дает прерывания 4мкс (тут же переключаются ноги, считываются ноги, считается таймеры Millis и Micros). Два этих прерывания будут накладываться друг на друга, да и ноги чаще 4мкс не могут переключаться.

Аватара пользователя
alverzilin
Рядовой
Сообщения: 72
Зарегистрирован: 15.09.2016{, 00:33}
Репутация: 0
Откуда: Zlobin.BY

генератор сигналов в FLProg

#43

Сообщение alverzilin » 06.04.2017{, 18:26}

Boroda писал(а):тут же переключаются ноги, считываются ноги
Ноги разные да? может я не понятно выразился... как бы объяснить.. короче.. три ноги (пины уно) одна всё время "вещает" прямоугольный импульс с известной частотой, а другие две - это, одна rx, а вторая tx. как то так. не? никак?
Изображение
Изображение

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

генератор сигналов в FLProg

#44

Сообщение Boroda » 06.04.2017{, 19:48}

Сам немного не правильно выразился. В системном прерывании, которое происходит каждые 4мкс, считаются глобальные таймеры Millis (таймер милисекунд) и Micros (таймер микросекунд).

Примерно такое же время занимают такие команды, как DigitalRead (чтение дискретного входа) и DigitalWrite (запись дискретного выхода) ,т.е. этими стандартными командами данную проблему не решить.

Даже если настроить любой из таймеров на прерывание 3,25 микросекунды для переключения выхода, то это прерывание будет конфликтовать с системным (практически одновременно происходят), т.к. одновременно может обрабатываться только одно прерывание. Таким образом то, что мы получим будет явно не частоты 153,6кГц и явно не будет являться меандром (импульс=паузе).

Аватара пользователя
alverzilin
Рядовой
Сообщения: 72
Зарегистрирован: 15.09.2016{, 00:33}
Репутация: 0
Откуда: Zlobin.BY

генератор сигналов в FLProg

#45

Сообщение alverzilin » 07.04.2017{, 17:01}

Boroda писал(а):то это прерывание будет конфликтовать с системным
Ага. То есть, говоря простым языком, вещание импульса, скажем так, и чтение-запись rx-tx, не могут выполнятся одновременно. Я правильно понял? Получается, нужно две уно, грубо говоря... Ясно. Вопрос то не суть важен, то есть другое решение. Но хотелось знать, не усложняю ли я себе задачу. Оказывается нет. Понял. спасибо за объяснение!)

зы. но так как мне нужна частота выше чем может дать уно, то вообще нужно использовать другие компоненты.
зыы тоже использую контроллер, но другого профиля...
Изображение
Изображение

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

генератор сигналов в FLProg

#46

Сообщение Boroda » 07.04.2017{, 17:05}

alverzilin писал(а):вещание импульса, скажем так, и чтение-запись rx-tx
Аппаратный UART (RX/TX) может работать одновременно с чем угодно. А вот генерацию таких коротких импульсов сделать не получится. Если только... где-то на форуме народ изменял частоту работы ШИМ-выходов (PWM). Вот это Вам может помочь. Но точную частоту получить будет сложно.

Аватара пользователя
alverzilin
Рядовой
Сообщения: 72
Зарегистрирован: 15.09.2016{, 00:33}
Репутация: 0
Откуда: Zlobin.BY

генератор сигналов в FLProg

#47

Сообщение alverzilin » 07.04.2017{, 23:20}

Boroda писал(а):точную частоту получить будет сложно
как раз таки нужна точная. дело в том, что данный импульс необходим для синхронизации rx\tx со скоростью 9600 бит в секунду
Изображение
Изображение

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

генератор сигналов в FLProg

#48

Сообщение Boroda » 08.04.2017{, 00:38}

alverzilin писал(а):данный импульс необходим для синхронизации rx\tx
А чего это за импульс такой? RX\TX - имеется ввиду UART?

Аватара пользователя
alverzilin
Рядовой
Сообщения: 72
Зарегистрирован: 15.09.2016{, 00:33}
Репутация: 0
Откуда: Zlobin.BY

генератор сигналов в FLProg

#49

Сообщение alverzilin » 19.04.2017{, 20:08}

Boroda писал(а):А чего это за импульс такой? RX\TX -
Это сигналы с ЭБУ авто...
Изображение
Изображение

atoll07
Рядовой
Сообщения: 7
Зарегистрирован: 09.01.2017{, 17:16}
Репутация: 1

генератор сигналов в FLProg

#50

Сообщение atoll07 » 20.04.2017{, 17:57}

Доброго времени суток.
разрешите пару вопросов по теме..
1) генератор предложенный sser в посте №36, использует прерывания? и как-то привязан к аппаратной части?
2) в одной программе (плате) можно использовать этот генератор (с привязкой к 9 пину) и два скоростных счетчика в режиме измерения длительности импульса(с привязкой к 2 и 3 пину, на Ардуино уно)?

Аватара пользователя
Sevast
Сержант
Сообщения: 145
Зарегистрирован: 21.06.2017{, 15:57}
Репутация: 5

генератор сигналов в FLProg

#51

Сообщение Sevast » 19.09.2017{, 19:31}

Кто подскажет, почему генератор сигналов спешит. Симметричный мультивибратор с частотой 500мс. Светодиод на Nano моргает с интервалом 1с. Через каждые 60 секунд идет сигнал на запуск  ШД, о тот делает один оборот. За 12 часов происходит сдвиг запуска ШД на +5 секунд, то есть в не в 0 сек, а в 05сек. Через сутки +10 секунд.
Как это лечится?

Ответить

Вернуться в «Встроенные блоки»