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

ногодрыг на частоте 50 кгц

Добавлено: 09 июл 2018, 19:27
jorj22
Всем привет.
Пожалуйста помогите!!!
Есть необходимость организовать на семи пинах одно секундную последовательность импульсов на частоте 50 кгц . Значения логических уровней думаю брать из массива с возможностью изменения. Задача критична к времени.
Я испытал вариант на командоаппарате всё отлично ,кроме того что начинает плавать частота. ESP8266 на частоте 160 МГц, командоаппарат выдаёт 65 КГц. При добавлении дополнительных элементов в схему частота падает до 40 КГц. В какую сторону копать? Очень важно соответствие импульсов заданному времени. Возможно Arduino Due даст нужней для меня результат?
С нетерпением жду каждый совет.
Всем удачи.

ногодрыг на частоте 50 кгц

Добавлено: 09 июл 2018, 23:17
seri0shka
Возможно, поможет эта статья:
Многозадачная Ардуина_ таймеры без боли

ногодрыг на частоте 50 кгц

Добавлено: 10 июл 2018, 05:55
vacz
Вы используете встроенный блок генератора импульсов G-SM. С ним так и будет прыгать частота. Используйте блок на прерываниях. В параметрах подберете нужную частоту:
Генератор_Секунд__(CODE).ubi

ногодрыг на частоте 50 кгц

Добавлено: 10 июл 2018, 16:38
jorj22
[ref]vacz[/ref],
Arduino: 1.8.1 (Windows XP), Плата:"NodeMCU 1.0 (ESP-12E Module), 160 MHz, 115200, 4M (3M SPIFFS)"

ПРЕДУПРЕЖДЕНИЕ: библиотека TimerOne должна запускаться на архитектурах [avr] и может быть несовместима с вашей платой на архитектуре [esp8266].
Кроме того мне надо получить частоту 50 кгц а ваш генератор работает на частоте 10 кгц.

Отправлено спустя 2 минуты 21 секунду:
[ref]seri0shka[/ref],

А как это применять в Flprog?

ногодрыг на частоте 50 кгц

Добавлено: 10 июл 2018, 20:18
vacz
Попробуй:
Генератор_G_(CODE).ubi
[spoiler]
50кГц.PNG
[/spoiler]

ногодрыг на частоте 50 кгц

Добавлено: 11 июл 2018, 12:46
jorj22
[ref]vacz[/ref], большое спасибо за участие в решении моей проблемы. Я использую esp8266.
При компиляции Arduino IDE выдаёт ошибку:



pr1:9: error: 'class TimerOne' has no member named 'initialize'
Timer1.initialize( 20 );
pr1:10: error: 'class TimerOne' has no member named 'attachInterrupt'
Timer1.attachInterrupt ( timerInterrupt, 20 );
^exit status 1
'class TimerOne' has no member named 'initialize'