Страница 2 из 2

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

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

Еще один вариант с другим генератором, где то в 25 мкс входит.
Но все это "за уши тянутое", врятли что то из этого путние выйдет )

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

Добавлено: 10.07.2016{, 05:56}
oren
Спасибо,сегодня посмотрю результат,только не понял,что делает переменная "er" в bit10_3

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

Добавлено: 10.07.2016{, 18:31}
oren
Здравствуйте.Проверил результат работы схемы  bit10_3- импульс устойчивый,- 25 мкС,сейчас хочу достичь 20 мкС ,я так понимаю,что переменная "er" это обратная связь. картинку прилагаю.

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

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

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

Добавлено: 14.07.2016{, 20:57}
oren
Здравствуйте,раз не удается создать микросекундные импульсы с помощью 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);}

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

Добавлено: 14.07.2016{, 23:05}
rw6cm
oren писал(а):как можно совместить это с FLprog,чтобы выбирать ,например, один из трех -четырех подобных кодов,
в FLprog все понятно,вставил квадратики с массивом и выбирай с помощью переключателя
Выборка с массива будет отнимать время, боюсь опять в параметры не войдем.
Лучше сделать каждый код своим блоком CODE, и переключать их матричной клавой.

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

Добавлено: 15.07.2016{, 06:17}
oren
Спасибо , подсказку понял!