Генератор импульса в один цикл
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Генератор импульса в один цикл
Штатный генератор наворочен, часто нужен генератор подающий импульс в один цикл, сделал для уменьшения веса скетча.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3125
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
Генератор импульса в один цикл
Вообще такой вариант генератора должен быть в штатных. Нужно Сергею писать петицию)
- Dryundel
- Полковник
- Сообщения: 2429
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
Генератор импульса в один цикл
[ref=#ff8000]aidar_i[/ref], вот Вам еще идея генератора, но привязанная к циклам. С millis() такой фортель не покатит.aidar_i писал(а): 19 мар 2023, 14:23 Штатный генератор наворочен, часто нужен генератор подающий импульс в один цикл, сделал для уменьшения веса скетча.
cycles++;
и теперь используем в нужных условиях типа так:
if ( ! (cycles % timer)) {
//....Требующееся действие
}
Где timer - период генератора (в циклах).
- Phazz
- Полковник
- Сообщения: 3125
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
- Dryundel
- Полковник
- Сообщения: 2429
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
Генератор импульса в один цикл
Практический смысл чего? Такого генератора?
О! это отдельная песня. Когда идет борьба за каждый бйт, сия штука даст вам очень много.
Ну сами посчитайте. Для обычного минимального таймера нужен один флаг - это один байт и переменная типа unsigned long oldTime, а это еще 4 байта. и того 5 байт с каждого генератора. А их к примеру а какой нибудь STM8S003 не так уж много.
- Phazz
- Полковник
- Сообщения: 3125
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
Генератор импульса в один цикл
[ref=#ff8000]Dryundel[/ref], но тогда нужно будет четко знать сколько времени займет 1 цикл.
- Dryundel
- Полковник
- Сообщения: 2429
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
Генератор импульса в один цикл
Во первых, данный вариант не для блока общего пользования. Во вторых, очень часто и не требуется великая точность по времени. В третьих, иногда к циклам привязываться даже выгодней. Ну и наконец, "жить захочешь не так раскорячишься".Phazz писал(а): 19 мар 2023, 21:22 Dryundel, но тогда нужно будет четко знать сколько времени займет 1 цикл.

История одного байта
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Генератор импульса в один цикл
Видел аналогичное решение в примерах для stm8s, но не догадался использовать.
Спасибо, сделаю блок и испытаю, уход с миллис с его unsigned long даст хорошую экономию памяти. В термостате не нужна особая точность таймера. И вообще хочу там только один генератор оставить, убрать из дисплея и датчика.
- Phazz
- Полковник
- Сообщения: 3125
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
Генератор импульса в один цикл
[ref=#ff8000]Dryundel[/ref], ну в общем вы правы, можно просто измерить время цикла конкретного проекта . Она вряд ли сильно меняется.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Генератор импульса в один цикл
Испытал, тратится больше памяти для такого генератора на стм8.Dryundel писал(а): 19 мар 2023, 21:15Практический смысл чего? Такого генератора?
О! это отдельная песня. Когда идет борьба за каждый бйт, сия штука даст вам очень много.
Ну сами посчитайте. Для обычного минимального таймера нужен один флаг - это один байт и переменная типа unsigned long oldTime, а это еще 4 байта. и того 5 байт с каждого генератора. А их к примеру а какой нибудь STM8S003 не так уж много.
от него не возможно уйти, если выдавать время напрямую(там нужно сотни тысяч ставить) , попробую со счётчиком, может так меньше будет или генератор в генераторе поставить, чтобы уложиться в ин-тежер.
- Dryundel
- Полковник
- Сообщения: 2429
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
Генератор импульса в один цикл
Очень странно. А почему?
Можно код испытуемый глянуть?
Совсем не возможно. Но в случае с той идеей что я предложил, такая переменная нужна одна на весь проект, а не для каждого таймера своя.
Отправлено спустя 5 минут 39 секунд:
Можно и интеджер применить в моём случае. Только будет чаще сбой точности происходить. Один раз на 64000 циклов, если бесзнаковый.
-
- Полковник
- Сообщения: 3358
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Генератор импульса в один цикл
[ref=#ff8000]Dryundel[/ref], может сделаете свой блок и мне скинете, я пока с пид для стм8 копаюсь, в память вписывается, но не проверил работоспособность.
- Dryundel
- Полковник
- Сообщения: 2429
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
Генератор импульса в один цикл
Ок. Через часик до компа доберусь.
Отправлено спустя 2 часа 53 минуты 45 секунд:
Вот. Попробуй.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Генератор импульса в один цикл
[ref=#ff8000]aidar_i[/ref], а если сделать на апаратном таймере который не привязан к милес и куклес тогда ещё точнее будет отрабатывать ?
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Генератор импульса в один цикл
Только сейчас посмотрел проект и понял о чем он -генератор периодических событий.Kot писал(а): 11 апр 2023, 14:08 aidar_i, а если сделать на апаратном таймере который не привязан к милес и куклес тогда ещё точнее будет отрабатывать ?
Таким блоком из библиотеки ecoins мы пользуемся давно, в профессиональной версии редактора предусмотрены два отключаемых выхода - меандр и событие(один цикл). Есть блоки и на простом редакторе. В блоках используется генератор из RT_HW_BASE.h, но без проблем может быть заменен генератором-библиотекой от FLProg или автономным генератором.
- Phazz
- Полковник
- Сообщения: 3125
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
Генератор импульса в один цикл
[ref]waswas[/ref], запись в переменную, тактирование платы дисплея. Отправка данных по вайфай. Я очень часто использую.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Генератор импульса в один цикл
А потому что " % - остаток от деления ", а любое деление это ресурсоемкая операция.
Генератор импульса в один цикл
а чем r-trigger или условие для платы не подходит?ecoins писал(а): 11 апр 2023, 20:35 запись в переменную, тактирование платы дисплея. Отправка данных по вайфай. Я очень часто использую
взвели его/её и получили на один цикл запись
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Генератор импульса в один цикл
В принципе тоже самое.waswas писал(а): 12 апр 2023, 19:57 а чем r-trigger или условие для платы не подходит?
взвели его/её и получили на один цикл запись
Но блок, который упоминался, совмещает в себе и генератор с минимальным количеством настроек (только период) и формирователь события(триггер), на плате занимает мало места, удобен в использовании.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя