0 / 0 / 0
Регистрация: 14.01.2023
Сообщений: 39
1

Совет по реализации задачи с использованием FreeRTOS

31.01.2024, 12:07. Показов 643. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Решил перенести свой проект (на базе STM32) из классического цикла в RTOS и столкнулся с дилеммой как лучше реализовать, т.к в ОСРВ я недавно.

Есть некая функция, которая принимаем в качестве первого параметра структуру с настройками (управления выходами) такие как фронт по которому нужно срабатывать, длительность (лог 1 и лог 0) количество повторений и время между этими повторениями, а в качестве второго параметра -порт/пин которым нужно управлять.
Например: мне нужно включить светодиод на 100мс, выключить на 300мс и так 5 раз, затем подождать минуту и по новой (если требуется).
Таких функций может быть и 5 и 10, у каждой свой дескриптор со своими настройками, но они должны крутится в цикле, что бы постоянно мониторить время и выполнять задуманное)
Функция не блокирующая, пробежались и пошли дальше.

Дилемма началась при переходе на ОСРВ, одного единственного цикла там уже нет, как вариант, создать задачу которая будет постоянно опрашивать те же функции, например раз в мс, но что то мне говорит, что это очень маленькое время, учитывая наличие других задач, всяких прерываний, критических зон и т.д, ставить 10мс или 20мс в принципе норм, если установлены временные интервалы кратные 10 или 20, что тоже не очень.

Создавать на каждый порт/пин свою задачу, даже не знаю, это сколько нужно задач, а задачи это память, если жирный МК, то почему бы и нет, а если скромный...

Вроде есть и программные таймеры в ОСРВ, но они либо тикают или не тикают, т.е просто так там не реализовать выше описанные алгоритм (аналог моей функции, которая ко всему возвращает значение о том, что один цикл (если он не многократный) завешен)

Как быть ?)))

п.с
Подскажите, в реальных проектах, нормальным является наличии 30-40 потоков (пусть конечно они не все активно трудятся, скорее всего большая часть спит и участвует по мере надобности) ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2024, 12:07
Ответы с готовыми решениями:

Энергосбережение во FreeRTOS на STM32f10X. Нужен совет
День добрый. Собрал устройство - lin фильтр для автомобиля. Для простоты запрограммировал его...

FreeRTOS, задачи
Добрый день всем. Начал изучать изучать FreeRTOS. И на толкнулся на то, что не могу создать...

Переход из задачи FreeRTOS в bootloader
Есть загрузчик который сидит начиная с адреса BOOTLOADER_START. Загрузчик написан на ChibiOS, и...

Зависание задачи в FreeRTOS и HardFault в USB
Доброго дня. Упёрся в две проблемы. Сразу скажу, что гуглил и безуспешно. Первая с непонятным...

FreeRTOS + STM32 - расчет размера стека задачи
Есть какая-то общепринятая методика расчет размера стека задачи ? Не, можно конечно, выделить...

3
Native x86
Эксперт Hardware
5513 / 3272 / 934
Регистрация: 13.02.2013
Сообщений: 10,421
01.02.2024, 04:47 2
Так и не понял, чем таймер не устраивает. Какая разрешающая способность по времени вам требуется? Пусть таймер тикает с нужной частотой, а в нем дергаются ваши функции по очереди.
0
0 / 0 / 0
Регистрация: 14.01.2023
Сообщений: 39
02.02.2024, 15:57  [ТС] 3
Цитата Сообщение от quwy Посмотреть сообщение
Какая разрешающая способность по времени вам требуется?
Не меньше 100мс можно задавать период.

Добавлено через 30 секунд
Цитата Сообщение от quwy Посмотреть сообщение
Пусть таймер тикает с нужной частотой, а в нем дергаются ваши функции по очереди.
Как вы себе это представляете ? дёргать таймер раз в мс ?
0
Native x86
Эксперт Hardware
5513 / 3272 / 934
Регистрация: 13.02.2013
Сообщений: 10,421
02.02.2024, 18:06 4
Как вы себе это представляете ? дёргать таймер раз в мс ?
И в чем проблема? Мы в RTOS или где?
0
02.02.2024, 18:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2024, 18:06
Помогаю со студенческими работами здесь

совет по реализации
Добрый день. Имеется следующий код: <form action="test.php" method="POST"> <? while($data =...

Совет по реализации
Здравствуйте, столкнулся с проблемой проектирования проекта и хотел бы посоветоваться как лучше...

совет в реализации
Довольно тяжело сформулировать, что именно меня интересует), но что то вроде этого: какими...

Совет для реализации
Доброго времени суток, возникло желание облегчить мед.персоналу работу по заполнению бланков. В...

Нужен совет по реализации
Доброго времени суток . Пишу клиент-серверную программу "тест", в общем, суть вопроса состоит вот в...

Необходим совет в реализации
Необходима помощь (совет) в реализации сети по схеме как на скрине. Пробовал настроить прокси...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru