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

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 07:57
vladimir_
Здравствуйте. Разрешите задать вопрос по блоку Слимпера «Генератор точного секундного импульса». Возможно ли , на основе этого блока сделать блок с двумя, независимыми выходами? С заданием двух параметров «period» генерации импульсов в мкс.? На одном выходе импульсы, например 200мкс (выбор в параметрах), а на другом секундные импульсы.
С СИ, никогда не сталкивался, но возникла необходимость такого блока.
Как пример:
[spoiler]
1.PNG
[/spoiler]
Блок:
Генератор_Секунд__(CODE).ubi

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 10:58
seri0shka
Может не сильно помогу, но посмотрите здесь:
Многозадачная Ардуина_ таймеры без боли
У автора временные периоды задаются не в виде периода, а в виде частот, то есть для вашнго варианта это будет 1 Гц и 5 кГц. И использовать можно только те частоты, которые автор заложил в библиотеку (не помню, есть ли там 5 кГц). Сам пробовал недавно- для секундного таймера точность превосходная, намного лучше, чем с использованием millis().
Да, неплохо было бы иметь блоки на основе библиотеки автора. У меня на это нет времени, к сожалению, и знаний маловато.

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 13:59
AVGN
[ref]vladimir_[/ref], Вы выложил не тот блок, что у Вас на скриншоте.

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 15:29
vladimir_
Да, это блок Слимпера, как основа. На скриншоте блок на котором я пытался что то изобразить. Но, не знание СИ не дает возможности создания нового, полноценного блока. Хотел обратиться непосредственно к Слимперу, но у него заблокирован вход сообщений. Очень грамотный и безотказный человек, но видно мы все достали его своими просьбами и он отключился.

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 15:57
rw6cm
[ref]vladimir_[/ref],
А что мешает генерировать 200мкс, а счетчиком отсчитывать секунды?
200mc_1c.flp

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 16:22
vladimir_
Мешает только одно, эти импульсы нужны в режиме прерывания. Для высокой точности они должны быть независимы от цикла МК.
Казалось бы - поставь два блока на разные частоты, но блок на прерываниях возможно использовать только один раз в проекте.
В Вашем проекте мс (милисекунды), блок же работает в мкс (микросекундах).

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 16:45
Sancho
vladimir_ писал(а): 28 июн 2018, 16:22Мешает только одно, эти импульсы нужны в режиме прерывания. Для высокой точности они должны быть независимы от цикла МК.
В Вашем проекте мс (милисекунды), блок же работает в мкс (микросекундах).
Вопрос нарисовывается в другом - а если за время цикла Вы получите два импульса через прерывания - что тогда? Или у Вас гарантированно цикл меньше периода? Не могу взять в толк, что-за задача такая?

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 17:02
vladimir_
Проблема в том, что в проекте должен использоваться высокоточный таймер + шаговые двигатели + дисплей. Необходимы импульсы, независимые от цикла МК. Один только дисплей все "убивает".

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 17:26
rw6cm
vladimir_ писал(а): 28 июн 2018, 16:22В Вашем проекте мс (милисекунды), блок же работает в мкс (микросекундах).
жара сказывается )) в проекте все верно, в названиях буковку не ту поставил (us)
vladimir_ писал(а): 28 июн 2018, 17:02в проекте должен использоваться высокоточный таймер + шаговые двигатели + дисплей.
такие вещи надо сочинять в ассемблере,
FLProg в этом не силен )

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 17:47
vladimir_
Вся беда в том, счетчик CTU не обрабатывает 200мкс (не знаю почему). От того и проект не работает, хотя мысль хорошая.

Отправлено спустя 16 минут 20 секунд:
[quote=seri0shka post_id=49889 time=1530172733 user_id=1235]Может не сильно помогу, но посмотрите здесь:
Многозадачная Ардуина_ таймеры без боли
seri0shka, дает ссылочку. К стати спасибо за нее. Там есть Суммирование периодов на прерываниях, только не знаю как применить это к блоку генератора секунд.
[spoiler]Суммирование периодов (деление частоты)

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

arduino-timer-api/examples/timer-api-counter/timer-api-counter.ino[/spoiler]

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 17:53
Sancho
vladimir_ писал(а): 28 июн 2018, 17:31Вся беда в том, счетчик CTU не обрабатывает 200мкс (не знаю почему)
???
Значится, если есть пропуски, время цикла больше 200мкс!!!

Отправлено спустя 5 минут 55 секунд:
Прочитал - есть дисплей.

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 17:54
vladimir_
Проект AVGN, вообще не работает ни в железе, ни в PROTEUS.

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 18:04
rw6cm
[ref]vladimir_[/ref],
Не знаю какой там у вас проект не работает.
у меня все считает даже с i2c дисплеем
и в визуальном сравнение в течении 5мин с секундами в компе, расхождений не вижу.
200мкс_1cек.flp

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 18:16
AVGN
[ref=#ff8000]rw6cm[/ref], он использует другой блок
Изображение

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 18:23
rw6cm
[ref]AVGN[/ref], это его не осуществленная хотелка ))

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 18:30
vladimir_
rw6cm писал(а): 28 июн 2018, 18:04[ref]vladimir_[/ref],
Не знаю какой там у вас проект не работает.
у меня все считает даже с i2c дисплеем
и в визуальном сравнение в течении 5мин с секундами в компе, расхождений не вижу.
200мкс_1cек.flp
Я извиняюсь. Почему то в моем проекте не работает. Вроде все почти так же:
bbb.flp

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 18:35
rw6cm
vladimir_ писал(а): 28 июн 2018, 18:30Вроде все почти так же:
Все да не так.
Глупо опрашивать i2c дисплей каждые 200мкс, естественно все зависнет ))

Генератор точного секундного импульса

Добавлено: 28 июн 2018, 19:14
vladimir_
Да, проморгал. :smile37:

Генератор точного секундного импульса

Добавлено: 10 июн 2019, 23:07
belyx
Блок:
Генератор_Секунд__(CODE).ubi -хороший блок ,но не компилируется в проекте с ESP8266-12E.
проба.flp
я так понимаю с ESP он не будет работать-нужен блок на другой библиотеке
нашёл вот-сам не осилю
может кто сваяет ? :smile453: