реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
Мусатов Констант...
сообщение Mar 10 2013, 23:29
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 10-10-06
Пользователь №: 21 172



Некая задача послала себя в ожидание вызвав vTaskDelay
Можно ли сделать так, что бы она была разблокирована раньше времени?
Судя по графу состояний ее можно сначала отправить в suspend через vTaskSuspend, а потом разбудить через vTaskResume.
Но попытка такой функции
Код
void UnblockDisplayTask( void )
{
  if( !xTaskIsTaskSuspended( DisplayTaskHandle) ) vTaskSuspend( DisplayTaskHandle );
  vTaskResume( DisplayTaskHandle );
}

приводит к зависанию на vTaskSuspend

В теории, можно изменить архитектуру приложения и не пользоваться этим функционалом. Но просто прототип устройства работает под виндами и написан на пяти таймерах, обработчики которых общаются с периферией, будят друг друга, меняют задержки и т.п.

----------------------------------------------------

А похоже получилось, просто один из вызовов этой функции оказался от имени самой же этой задачи и, естественно, себя она уже замораживала навечно.

Сообщение отредактировал Мусатов Константин - Mar 10 2013, 23:30
Go to the top of the page
 
+Quote Post
Cosmojam
сообщение Mar 11 2013, 07:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Можно усыплять задачу не vTaskDelay, а упирая её в семафор с таймаутом и выдавая семафор будить её раньше таймаута когда это нужно


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
Мусатов Констант...
сообщение Mar 11 2013, 07:32
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 10-10-06
Пользователь №: 21 172



Цитата(Cosmojam @ Mar 11 2013, 11:09) *
Можно усыплять задачу не vTaskDelay, а упирая её в семафор с таймаутом и выдавая семафор будить её раньше таймаута когда это нужно

О, спасибо, что-то я упустил этот вариант.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 23:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016