Благодарю
Отправлено спустя 41 минуту 29 секунд:
не понял где и как это сделать?
Библиотеки для разных контроллеров
Благодарю
не понял где и как это сделать?
Сейчас в каждом блоке ds1820 установлен параметр 1000мс- сделайте для разных блоков разные, это избавит от того, что они будут вызываться синхронно. Если блоки ds1820 разнесены по свободным задачам,, то это даёт несущественное улучшение, и не так и обязательно.
Хочу оптимизировать свою программу, установить Ваш диспетчер задач и поставить Ваш блок дисплея 1602, и так по мелочи довести до ума.
Автономный дсипетчер задач.
Не требует дополнительных библиотек.
1.На выходе control изменение значения (0/1) в каждом цикле loop() Arduino.
Может использоваться для наблюдения логическим анализатором на одном из пинов работы проекта.
2.На выходе blink_10ms генератор меандра 10ms.
Не рекомендуется использовать в задачах "оперативная,быстрая,медленная,фоновая", так как возможно наложение
значений по времени генератора и периода вызова задач.
Хорошо и удобо использовать в "Свободной" задаче.
3. На пяти выходах генерит номера задач:
num_quick->Оперативная задача: период= 10ms; кол-во задач=5;
num_fast ->Быстрая задача: период= 50ms; кол-во задач=4;
num_slow ->Медленная задача: период=250ms; кол-во задач=4;
num_back->Фоновая задача: период=100ms; кол-во задач=5;
num_frdm ->Свободная задача: период=loop(); кол-во задач=25;
В каждый момент времени на выходе только один из номенов отличных от нуля.
Приоритет вызова в указанном выше порядке.
------------------------------------------------------------
ecoins@mail.ru 28.12.2020
если я правильно понял значения в первом цикле будет "1", во второи "0", в третем "1" и так далей 0101010101010...?1.На выходе control изменение значения (0/1) в каждом цикле loop() Arduino.
если допустим операция занимает 20ms или стоит делей на 1 сек, как себя поведет этот режим?На выходе blink_10ms генератор меандра 10ms.
. На пяти выходах генерит номера задач:
num_quick->Оперативная задача: период= 10ms; кол-во задач=5;
num_fast ->Быстрая задача: период= 50ms; кол-во задач=4;
num_slow ->Медленная задача: период=250ms; кол-во задач=4;
num_back->Фоновая задача: период=100ms; кол-во задач=5;
num_frdm ->Свободная задача: период=loop(); кол-во задач=25;
Спасибо
Да, как Вы написали.Gordon0007 писал(а): ↑07.04.2021{, 15:34}если я правильно понял значения в первом цикле будет "1", во второи "0", в третем "1" и так далей 0101010101010...?
Чудес не бывает - будет затягивание полупериода на это время. Поэтому мы и разрабатываем свои библиотеки, с так называемым программным прерыванием, в которых отсутствуют delay().Gordon0007 писал(а): ↑07.04.2021{, 15:34}если допустим операция занимает 20ms или стоит делей на 1 сек, как себя поведет этот режим?
Плата, которая вызывается по условию быстрая задача=1, С Вашими параметрами будет вызываться 1 раз в 200мс (50х4).Gordon0007 писал(а): ↑07.04.2021{, 15:34}3.2 не понятно как происходит задача, допустим "num_fast ->Быстрая задача: период= 50ms; кол-во задач=4;" 1-задача сработает раз в 50мс, а вторая раз в 100мс или все они отработаю одновременно через 50мс (прям совсем не понятно, что и как работает)? что будет происходить в двух не задействованных задачах?
Будет сдвижка по фазе времени всего диспетчера, но все задачи будут последовательно выполнены. Это можно наблюдать на дисплее на нашем блоке -все работает, но медленно, сигнальная звездочка реже моргает.Gordon0007 писал(а): ↑07.04.2021{, 15:34}3.3 Что будет если операция (цикл) занимает больше времени чем период задачи или стоит делей, как себя поведют эти режимы?
255 каждого типа. Увлекаться не стоит - проверка на вызов каждой задачи, когда подходит время её выполнения для Nano - 10-12mcs.
Они включаются тогда, когда вы привязываете плату к условию номер задачи одного из типов.
Это плохое решение -нужно использовать другие блоки с типом задачи свободная или делать это по аппаратным прерываниям от кнопки или таймера.Gordon0007 писал(а): ↑07.04.2021{, 15:34}3.6 можно ли использовать этот блок если у меня используются кнопки с подчетом времени их нажатия или подсчет будет каждый раз прерываться и нужно это отслеживать без разрешения от этого блока
Спасибо, за ваши ответы
Предлагаю поглубже вникнуть в организацию выполнения задач на одном контроллере Arduino.Gordon0007 писал(а): ↑09.04.2021{, 11:42}Осталось не понятно как все таки поведет себя задача, допустим у меня задача "Быстрая задача: период= 50ms; кол-во задач=3;" 1 задача выполняется 15мс, вторая 200мс, третья вообще имеет в себе делей на 2сек;
Вопрос с какой скважностью будет выполняться первая, вторая и треть задача?
Задача: нужно чтобы первая задача раз в 150мс моргала светодиодом и опрашивал время зажатия кнопок, вторая по I2C отправляла текст на 5шт дисплеем 2004, и третья общалась со другим контроллером при изменение переменной или раз в 5 минут по интерфейсу. Опрос должен происходить не реже чем 150мс ."задача условная и не имеет не чего общего с моими задачами"
Причин непонятности могут быть разные - и часто не знакомство с темой и отличие предлагаемых подходов отличных от привычных.Gordon0007 писал(а): ↑09.04.2021{, 12:03}ecoins,
Вы не подумайте не чего плохого, я не придираюсь. Просто хочу разобраться сам и сделать блок лучше для других.
Просто я открыв свой проект через 2 года, я даже не вспомню как пользоваться ПБ блоком, а не дай бог я сделаю для кого другого прошивку и пользователь решит внести изменения так меня замучают вопросами, на которые у меня даже ответов не будет.
Описание к блокам очень скудное и без обид не понятное. Нужно описание делать максимально развернуто, иначе пользователям сложно разобраться, даже если ответы есть где то на форуме это не чего не значит, так как найти этот ответ зачастую очень сложно, а для вас ответив на вопрос на форуме нет не какой сложность поправить версию блока дополнить описание и вуаля пользователь скачал новенькую версию с полным описанием.
Моё мнение: блок должен обязательно иметь версию и иметь описание краткое, и пояснение чуть ниже с подробным описанием и примерами.
Из справки:
Спасибо
у вас может еще есть какая то информация по ESP32 какие выходы и когда можно использовать, если есть такая инфа, поделитесь пожалуйста.
Неплохая ссылка https://diytech.ru/projects/spravochnik ... ispolzovat
признателенecoins писал(а): ↑11.04.2021{, 02:32}Неплохая ссылка https://diytech.ru/projects/spravochnik ... ispolzovat
В новой редакции библиотеки пины по группам могут (для справки) выводится на консоль.
Test_HTU21.flp не компилируется по причине отсутствия в библиотеке RT_25_HW_HTU21_v0.2.zip файла RT_HW_BASE.h.
[/uhide]