jcxz 307 June 9, 2024 Posted June 9, 2024 · Report post 15 минут назад, Arlleex сказал: В Вашем случае, получается, не может быть >1 задач с одинаковыми приоритетами. У всех разные? Да. Это иногда недостаток наверное. Но также - не встречал в практике прям насущной необходимости в равноприоритетных задачах. Зато очень быстрое и простое управление задачами. Quote Share this post Link to post Share on other sites More sharing options...
Mty 0 June 9, 2024 Posted June 9, 2024 · Report post 6 hours ago, tonyk_av said: Так я писал о том, что задача таймера ОС имела значительно, в разы меньший приоритет поэтому очередь до её запуска доходила редко. У меня вот такие приоритеты. Таймерная задача - приоритет по умолчанию, ADCTask приоритет тоже по умолчанию для задач. Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 65 June 10, 2024 Posted June 10, 2024 · Report post 10 hours ago, Mty said: У меня вот такие приоритеты. Таймерная задача - приоритет по умолчанию, ADCTask приоритет тоже по умолчанию для задач. Ё-моё! Я уже начинаю становится ярым противником Куба. Откройте книжку по FreeRTOS и почитайте про приоритеты. Ну нельзя тупо, как баран на верёвочке, идти на заклание. У вас приоритет задачи таймеров чуть выше приоритета задачи, вызываемой при простое, поэтому она просто очень редко вызывается. Поставьте на ней точку останова, когда пойдёте на обед. Есть шанс, что вернувшись, ваша программа остановится на ней. Вам реально нужно столько приоритетов, не менее 32? Тупо задайте Tmr_Svc приоритет 24 и посмотрите результат. Quote Share this post Link to post Share on other sites More sharing options...
x893 76 June 10, 2024 Posted June 10, 2024 · Report post 1 hour ago, tonyk_av said: Тупо задайте Tmr_Svc приоритет 24 и посмотрите результат. Тупость - это не самое страшное. Может у него тупо while(1) { vTaskDelay(1000); } или ещё тупее Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 65 June 10, 2024 Posted June 10, 2024 · Report post 1 minute ago, x893 said: while(1) { vTaskDelay(1000); } Это как раз не страшно. ОС просто переключается на другие задачи. У ТС просто таймерная задача не вызывается из-за мусорного приоритета. Я Кубом для кодогенерации не_пользуюсь, поэтому не знаю, чё-где надо у него покрутить, чтобы он правильно настроил приоритеты. Quote Share this post Link to post Share on other sites More sharing options...
x893 76 June 10, 2024 Posted June 10, 2024 · Report post 11 minutes ago, tonyk_av said: Это как раз не страшно. ОС просто переключается на другие задачи. У ТС просто таймерная задача не вызывается из-за мусорного приоритета. Я Кубом для кодогенерации не_пользуюсь, поэтому не знаю, чё-где надо у него покрутить, чтобы он правильно настроил приоритеты. Тупо мышью потыкать надо. Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 65 June 10, 2024 Posted June 10, 2024 · Report post 1 hour ago, x893 said: Тупо мышью потыкать надо. Не-не-не, это не то. Нужно задать приоритет системной задаче Tmr_svc. Quote Share this post Link to post Share on other sites More sharing options...
x893 76 June 10, 2024 Posted June 10, 2024 · Report post Just now, tonyk_av said: Не-не-не, это не то. Нужно задать приоритет системной задаче Tmr_svc. Программисты разберутся. Quote Share this post Link to post Share on other sites More sharing options...
EdgeAligned 99 June 12, 2024 Posted June 12, 2024 · Report post Вроде ж давал ссылку на мануал по Free RTOS... А вот еще были раньше несколько статей на русском языке по FreeRTOS для микроконтроллеров, не помню автора, как-то Куриц или Курицын как-то так. Давнишние статейки, года 2010 наверно, но там даны основы, которые с тех пор и не поменялись Quote Share this post Link to post Share on other sites More sharing options...