FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Вторник, 17.10.2017, 19:59
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Работа генератора в FLProg. (Генератор спешит...)
Работа генератора в FLProg.
Sevast Дата: Среда, 20.09.2017, 19:16 | Сообщение # 1
Сержант
Группа: Проверенные
Сообщений: 40
Награды: 0
Репутация: 0
Статус: Offline
Подскажите, почему генератор сигналов спешит. Симметричный мультивибратор с частотой 500мс. Светодиод на Nano моргает с интервалом
1с. Через каждые 60 секунд идет сигнал на запуск  ШД, и тот делает один
оборот. За 12 часов происходит постепенный сдвиг времени запуска ШД на +5..10 секунд, то есть в
не в 0 сек, а в 05сек. Через сутки до +20 секунд достигает.
Питается NANO через VIN +12В стабилизированных.
Как это лечится?
 
Phazz Дата: Среда, 20.09.2017, 19:29 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 211
Награды: 5
Репутация: 4
Статус: Offline
Не лечится
 
support Дата: Среда, 20.09.2017, 19:51 | Сообщение # 3
Автор программы
Группа: Администраторы
Сообщений: 907
Награды: 41
Репутация: 27
Статус: Offline
В китайских ардуинках стоят не самые лучшие кварцы. Частота может плавать. Как вариант могу посоветовать подключить к контроллеру либо более менее точный осцилограф (или частотомер) если есть и с помощью параметров блока генератора выставить точное значение длительности периода (частоты). Ну и конечно эти параметры будут разные для каждого экземпляра ардуинки.

Разработчик программы FLProg
 
Labu55 Дата: Четверг, 21.09.2017, 09:29 | Сообщение # 4
Сержант
Группа: Проверенные
Сообщений: 52
Награды: 1
Репутация: 1
Статус: Offline
Цитата support ()
Частота может плавать
Извините за мою некомпетентность и вопрос который давно меня интересует. Генератор использует один из хардовых таймеров процессора? Это в свете линейности выполнения программы, отвлечения на применяемые дилеи в программе и использования ресурсов МК.  Спасибо.
P.S. Прочитал себя и понял что изъясняюсь не слишком понятно. Что лучше в плане экономии ресурсов МК и скорости выполнения программы: применить несколько генераторов; один генератор (тактовой частоты)+ несколько счётчиков; один генератор + один счётчик+ многовходовый переключатель (делитель частоты), как делалось в доМК эру  в цифровой технике (паралельные процессы в отличии от линейности в МК)?


Сообщение отредактировал Labu55 - Четверг, 21.09.2017, 09:50
 
grin-mpx Дата: Четверг, 21.09.2017, 11:19 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Поставить часы реального времени, например DS3231 и запускать ШД  при каждой новой минуте. Правда не знаю как это повлияет на стабильность программы в Вашем случае. А часы вроде точные.
 
Sevast Дата: Четверг, 21.09.2017, 13:47 | Сообщение # 6
Сержант
Группа: Проверенные
Сообщений: 40
Награды: 0
Репутация: 0
Статус: Offline
Цитата support ()
Как вариант могу посоветовать подключить к контроллеру либо более менее точный осцилограф (или частотомер) если есть и с помощью параметров блока генератора выставить точное значение длительности периода (частоты).
Отличное предложение. Буду пробовать.
Цитата grin-mpx ()
Поставить часы реального времени, например DS3231
Как раз и хочу убрать DS3231 с проекта, так как нет смысла использовать их если есть генератор...
 
Sancho Дата: Понедельник, 25.09.2017, 11:16 | Сообщение # 7
Генерал-майор
Группа: Проверенные
Сообщений: 456
Награды: 13
Репутация: 13
Статус: Offline
Цитата Sevast ()
Симметричный мультивибратор с частотой 500мс
Меняй на 500000мкс, актуально при сравнении в генераторе с системным временем, и подгоняй +/- 1,2,3...
Проверено при работе с PCF8593  в  режиме частотомер - замер количества импульсов за 1 сек.


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
Слимпер Дата: Понедельник, 25.09.2017, 14:36 | Сообщение # 8
Генерал-лейтенант
Группа: Проверенные
Сообщений: 967
Награды: 54
Репутация: 40
Статус: Offline
Цитата support ()
В китайских ардуинках стоят не самые лучшие кварцы. Частота может плавать. Как вариант могу посоветовать подключить к контроллеру либо более менее точный осцилограф (или частотомер) если есть и с помощью параметров блока генератора выставить точное значение длительности периода (частоты). Ну и конечно эти параметры будут разные для каждого экземпляра ардуинки.
Вообще то есть еще проблема логики работы самого генератора.
Сейчас если выставить скажем 1 секунду, то импульс будет генерироваться не через секунду ровна, а через 1сек + плюс время программного цикла. Т.е. всегда есть небольшое расхождение и при том его величина может плавать.
Пока программа меленькая, эффект мало заметен, а если программа становится медленной (время программного цикла 10 и 100 млсек), ситуация становится уже сильно заметна.
 
Уже довольна давно делал блок Генератор секунд  , он работает на основе прерываний аппаратного таймера Timer1. Тестировал результат значительно более стабильный. Но из-за использования аппаратного таймера есть свои ограничения, могут быть конфликты с тем где он тоже используется

Добавлено (25.09.2017, 14:36)
---------------------------------------------
support, Вообще мне кажется, что можно немого доработать код программы.
Сейчас код семерично генератора с периодом 500мс такой (только кусок):

 if (_gen1I) {  if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis(); _gen1O = ! _gen1O;}}

Переделать так 

if (_gen1I) {  if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis()-_gen1P+500; _gen1O = ! _gen1O;}}

Можно свести накопления ошибки к минимуму.

Так как, это сделает программу тяжелея, а это точность часто избыточна, можно в настройках блока генератор добавить галочку "Повышенная точность".

 
CraCk Дата: Понедельник, 25.09.2017, 15:17 | Сообщение # 9
Полковник
Группа: Проверенные
Сообщений: 302
Награды: 2
Репутация: 3
Статус: Offline
Цитата Слимпер ()
Вообще мне кажется, что можно немого доработать код программы
И добавить для мультивибраторов галочку "Использовать прерывания" как раз здействовать код из блока Слимплера.
 
Форум » Основной » Спросить у знатоков » Работа генератора в FLProg. (Генератор спешит...)
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика