jcxz 241 9 июня Опубликовано 9 июня · Жалоба 15 минут назад, Arlleex сказал: В Вашем случае, получается, не может быть >1 задач с одинаковыми приоритетами. У всех разные? Да. Это иногда недостаток наверное. Но также - не встречал в практике прям насущной необходимости в равноприоритетных задачах. Зато очень быстрое и простое управление задачами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mty 0 9 июня Опубликовано 9 июня · Жалоба 6 hours ago, tonyk_av said: Так я писал о том, что задача таймера ОС имела значительно, в разы меньший приоритет поэтому очередь до её запуска доходила редко. У меня вот такие приоритеты. Таймерная задача - приоритет по умолчанию, ADCTask приоритет тоже по умолчанию для задач. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 44 10 июня Опубликовано 10 июня · Жалоба 10 hours ago, Mty said: У меня вот такие приоритеты. Таймерная задача - приоритет по умолчанию, ADCTask приоритет тоже по умолчанию для задач. Ё-моё! Я уже начинаю становится ярым противником Куба. Откройте книжку по FreeRTOS и почитайте про приоритеты. Ну нельзя тупо, как баран на верёвочке, идти на заклание. У вас приоритет задачи таймеров чуть выше приоритета задачи, вызываемой при простое, поэтому она просто очень редко вызывается. Поставьте на ней точку останова, когда пойдёте на обед. Есть шанс, что вернувшись, ваша программа остановится на ней. Вам реально нужно столько приоритетов, не менее 32? Тупо задайте Tmr_Svc приоритет 24 и посмотрите результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 10 июня Опубликовано 10 июня · Жалоба 1 hour ago, tonyk_av said: Тупо задайте Tmr_Svc приоритет 24 и посмотрите результат. Тупость - это не самое страшное. Может у него тупо while(1) { vTaskDelay(1000); } или ещё тупее Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 44 10 июня Опубликовано 10 июня · Жалоба 1 minute ago, x893 said: while(1) { vTaskDelay(1000); } Это как раз не страшно. ОС просто переключается на другие задачи. У ТС просто таймерная задача не вызывается из-за мусорного приоритета. Я Кубом для кодогенерации не_пользуюсь, поэтому не знаю, чё-где надо у него покрутить, чтобы он правильно настроил приоритеты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 10 июня Опубликовано 10 июня · Жалоба 11 minutes ago, tonyk_av said: Это как раз не страшно. ОС просто переключается на другие задачи. У ТС просто таймерная задача не вызывается из-за мусорного приоритета. Я Кубом для кодогенерации не_пользуюсь, поэтому не знаю, чё-где надо у него покрутить, чтобы он правильно настроил приоритеты. Тупо мышью потыкать надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 44 10 июня Опубликовано 10 июня · Жалоба 1 hour ago, x893 said: Тупо мышью потыкать надо. Не-не-не, это не то. Нужно задать приоритет системной задаче Tmr_svc. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 10 июня Опубликовано 10 июня · Жалоба Just now, tonyk_av said: Не-не-не, это не то. Нужно задать приоритет системной задаче Tmr_svc. Программисты разберутся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 12 июня Опубликовано 12 июня · Жалоба Вроде ж давал ссылку на мануал по Free RTOS... А вот еще были раньше несколько статей на русском языке по FreeRTOS для микроконтроллеров, не помню автора, как-то Куриц или Курицын как-то так. Давнишние статейки, года 2010 наверно, но там даны основы, которые с тех пор и не поменялись Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться