Выдача пачки импульсов

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Выдача пачки импульсов

#21

Сообщение rw6cm » 09.07.2016{, 10:55}

oren писал(а):хочу попробовать такую схему,генератор выдает нужную частоту ,хотя не стабильно,в воскресенье попробую,
Если внешний генератор не помог, то с дополнительным блоком CODE
будет выдавать в разы больше )  150-200 мкс.
Думаю что время в десятки микросекунд, сильно критичны от работы проца с кодом программы,
чем сильнее загружен проц, тем реже он сможет опрашивать порты, отсюда нет смысла создавать проекты на ардуинке,
если требуется опрос портов меньше 100 мкс. (про двух ядрёные не скажу).

Еще один вариант с другим генератором, где то в 25 мкс входит.
Но все это "за уши тянутое", врятли что то из этого путние выйдет )
Вложения
bit10_3.flp
(143.35 КБ) 68 скачиваний
bit10_2.flp
(126.19 КБ) 50 скачиваний
Последний раз редактировалось rw6cm 09.07.2016{, 17:49}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#22

Сообщение oren » 10.07.2016{, 05:56}

Спасибо,сегодня посмотрю результат,только не понял,что делает переменная "er" в bit10_3
Вложения
2311065.flp
(143.35 КБ) 52 скачивания

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#23

Сообщение oren » 10.07.2016{, 18:31}

Здравствуйте.Проверил результат работы схемы  bit10_3- импульс устойчивый,- 25 мкС,сейчас хочу достичь 20 мкС ,я так понимаю,что переменная "er" это обратная связь. картинку прилагаю.
Вложения
7377747.jpg

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Выдача пачки импульсов

#24

Сообщение rw6cm » 11.07.2016{, 14:09}

oren писал(а):сейчас хочу достичь 20 мкС ,я так понимаю,что переменная "er" это обратная связь.
"er" это своего рода ошибка вычисления. Если она ровна 0, (это при константе 50),
то получается генератор одного цикла типа:
digitalWrite(outPin, HIGH);
digitalWrite(outPin, LOW);
т.е получается меандр на максимально возможной частоте.
Если поставить допустим 75, то длина импульса останется той же, а пауза увеличится на время в 25 циклов пересчета до 0.
то есть увеличивается период. В другую сторону увеличивается импульс при минимальной паузе.
Это как то экспериментировал, на генераторах FLProg. Alex16 предложил как вариант это генератор.
Тогда обратил внимание что у него период получался меньше чем на гене FLProg.
Здесь вспомнил, решил найти попробовать, но 25 мкс, и меньше не получится.
Придется ждать когда Автор сделает поддержку DUE, может на ней это будет веселей.
Последний раз редактировалось rw6cm 11.07.2016{, 14:31}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#25

Сообщение oren » 14.07.2016{, 20:57}

Здравствуйте,раз не удается создать микросекундные импульсы с помощью FLprog ,тупо скопировал  файл "Blink" из примеров,но установил импульсы 12 мкС и нужные временные интервалы "delayMicroseconds"-в результате получил короткие импульсы и работающий код!Дальше ума не хватает,как можно совместить это с  FLprog,чтобы выбирать ,например, один из трех -четырех подобных кодов,в  FLprog все понятно,вставил квадратики с массивом и выбирай с помощью переключателя.Во всяком случае важен момент,что с помощью arduinо можно создавать короткие микросекундные импульсы!

void setup()   // initialize digital pin 4 as an output.  pinMode(4, OUTPUT);}// the loop function runs over and over again forevervoid loop() {  digitalWrite(4, HIGH);    delayMicroseconds(12);                     digitalWrite(4, LOW);            delayMicroseconds(312.45);               digitalWrite(4, HIGH);    delayMicroseconds(12);                      digitalWrite(4, LOW);           delayMicroseconds(479.09);              digitalWrite(4, HIGH);    delayMicroseconds(12);                      digitalWrite(4, LOW);            delayMicroseconds(145.81);             digitalWrite(4, HIGH);   delayMicroseconds(12);                   digitalWrite(4, LOW);            delayMicroseconds(479.09);               digitalWrite(4, HIGH);     delayMicroseconds(12);                     digitalWrite(4, LOW);             delayMicroseconds(145.81);              digitalWrite(4, HIGH);    delayMicroseconds(12);                    digitalWrite(4, LOW);           delayMicroseconds(312.45);  digitalWrite(4, HIGH);   delayMicroseconds(12);                      digitalWrite(4, LOW);            delayMicroseconds(145.81);  digitalWrite(4, HIGH);    delayMicroseconds(12);                     digitalWrite(4, LOW);           delayMicroseconds(645.73);  digitalWrite(4, HIGH);    delayMicroseconds(12);                      digitalWrite(4, LOW);           delayMicroseconds(145.81);  digitalWrite(4, HIGH);    delayMicroseconds(12);                    digitalWrite(4, LOW);           delayMicroseconds(645.73);delayMicroseconds(1000);}

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Выдача пачки импульсов

#26

Сообщение rw6cm » 14.07.2016{, 23:05}

oren писал(а):как можно совместить это с FLprog,чтобы выбирать ,например, один из трех -четырех подобных кодов,
в FLprog все понятно,вставил квадратики с массивом и выбирай с помощью переключателя
Выборка с массива будет отнимать время, боюсь опять в параметры не войдем.
Лучше сделать каждый код своим блоком CODE, и переключать их матричной клавой.
Вложения
bit10_4.flp
(46.72 КБ) 54 скачивания
Win10-64, FLProg (portable)

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#27

Сообщение oren » 15.07.2016{, 06:17}

Спасибо , подсказку понял!

Ответить

Вернуться в «Спросить у знатоков»