Александр, добрый день. Очень полезные видео для новичков. Не могли бы Вы записать видео по FreeRTOS о передачи параметров в задачи. Не могу разобраться как передать массив структуры в качестве параметра для задачи. Без использования FreeRTOS в программе все работает. Но хотел попробовать с FreeRTOS, и никак не могу заставить работать задачу. Есть массив: struct ChannelPWM_t { int8_t _hour; int8_t _minute; int8_t _sec; int8_t _channels[5]; }; ChannelPWM_t ChannelPWM_Point[4] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30, 80, 80, 80, 80, 80, 0, 2, 50, 60, 60, 60, 60, 60, 0, 3, 30, 0, 0, 0, 0, 0}; Как передать значения массива в задачу?
Добрый день. В будущем я сниму видео, сейчас немного ситуация у нас в стране сложная и я немного другим занят. Снимаю по возможности готовые уроки, которые ранее подготовил.
Если помещать в переменную, нужно одновременно и записывать и забирать данные, могут быть пропуски значений. Для того, чтобы не пропускать значения - предназначена очередь.
Delay1000 специально было добавлено, - это как бы другой код, который занимает тоже время. Конечно, если у Вас меленький код - все будет работать, но если большой..... Я же уточнил, что это имитация ситуации, и показал один из вариантов решения с помощью FreeRTIS.
По такому описанию тяжело сказать, что у Вас не так. Надо хотя бы минимум информации: какая плата/микроконтроллер, и программный код который Вы написали.
Это конечно откровенный бред, заводить операционку под AVR. Мало того что ногами через функции дрыгаем, так давайте элементарные задачи решать через жопу )))))
а в чем проблема?памяти нехватает или частоты? или сидеть несколько часов и думать как оптимизировать код что бы все работало и без пропусков, если стоит несколько задач перед камнем то думаю что небольшая ОС лишней не будет. или я что-то не понимаю? можете пожалуйста конкретно описать минусы, мне очень любопытно почему вы так негодуете
@@xKUMAxMU Если вы несколько часов думаете над такими задачами то программирование не ваше. И добавление слоя абстракций ну никак не увеличит производительность.
@@AVK130174 над какими? в последний раз я решал задачу по считыванию LIN шины, распознования пакетов, расшифровки этих пакетов, формирование нового пакета в зависимости от того что пришло и вывод этого пакета на другую линию по тому же протоколу LIN и все это на 13й тини с 1Кб памяти
Услышав слово"аналовый", сразу подписался...)))
Аналовый вход 😂 это в золотой цитатник
А вы можете сделать такой же пример только на прерываниях по таймеру
Сделать можно, - но пока нет времени. Если Вам действительно нужна данная реализация - напишите мне отдельно, посмотрим, как Вам можно будет помочь.
Александр, добрый день. Очень полезные видео для новичков. Не могли бы Вы записать видео по FreeRTOS о передачи параметров в задачи.
Не могу разобраться как передать массив структуры в качестве параметра для задачи. Без использования FreeRTOS в программе все работает. Но хотел попробовать с FreeRTOS, и никак не могу заставить работать задачу.
Есть массив:
struct ChannelPWM_t
{
int8_t _hour;
int8_t _minute;
int8_t _sec;
int8_t _channels[5];
};
ChannelPWM_t ChannelPWM_Point[4] =
{0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 30, 80, 80, 80, 80, 80,
0, 2, 50, 60, 60, 60, 60, 60,
0, 3, 30, 0, 0, 0, 0, 0};
Как передать значения массива в задачу?
Добрый день.
В будущем я сниму видео, сейчас немного ситуация у нас в стране сложная и я немного другим занят. Снимаю по возможности готовые уроки, которые ранее подготовил.
А зачем очередь вообще? Мы оперируем с 1 текущим значением АЦП, разве простой переменной недостаточно?
Если помещать в переменную, нужно одновременно и записывать и забирать данные, могут быть пропуски значений. Для того, чтобы не пропускать значения - предназначена очередь.
@@itsm1448 это можно решить мьютексом?
Я не программист, но мне кажется пропуски в начале видео из-за Delay 1000
Delay1000 специально было добавлено, - это как бы другой код, который занимает тоже время. Конечно, если у Вас меленький код - все будет работать, но если большой.....
Я же уточнил, что это имитация ситуации, и показал один из вариантов решения с помощью FreeRTIS.
система получила сигнал на анальном входе
Наверное украинец.
Установил библиотеку FreeRTOS не фига не хочет работать, не подскажите в чем может быть проблема ?
По такому описанию тяжело сказать, что у Вас не так. Надо хотя бы минимум информации: какая плата/микроконтроллер, и программный код который Вы написали.
Это конечно откровенный бред, заводить операционку под AVR. Мало того что ногами через функции дрыгаем, так давайте элементарные задачи решать через жопу )))))
Выбор за Вами, ест возможность, есть реализация. А уже пользоваться нею или нет - каждый решает для себя сам.
а в чем проблема?памяти нехватает или частоты? или сидеть несколько часов и думать как оптимизировать код что бы все работало и без пропусков, если стоит несколько задач перед камнем то думаю что небольшая ОС лишней не будет.
или я что-то не понимаю? можете пожалуйста конкретно описать минусы, мне очень любопытно почему вы так негодуете
@@xKUMAxMU Если вы несколько часов думаете над такими задачами то программирование не ваше. И добавление слоя абстракций ну никак не увеличит производительность.
@@AVK130174 над какими? в последний раз я решал задачу по считыванию LIN шины, распознования пакетов, расшифровки этих пакетов, формирование нового пакета в зависимости от того что пришло и вывод этого пакета на другую линию по тому же протоколу LIN и все это на 13й тини с 1Кб памяти