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

 
 
> Как из обработчика прерывания(вынесен в отдельный файл) вызвать xTaskResumeFromISR
Neo_Matrix
сообщение Feb 25 2016, 15:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-04-06
Пользователь №: 16 029



Такая проблема:
Есть файл main.c в нем имеется задача РТОС, которая объявлена как void vDeleteSTR(void const * argument); сама функция такая
Код
void vDeleteUart(void const * argument)
{
//Здесь удаляем строку
vTaskSuspend(NULL); // Здесь засыпаем, пока прерывание не разбудит...
}

Сам обработчик прерывания вынесен в отдельный файл допустим irq.c
Код
void USART3_IRQHandler(void)
{
xTaskResumeFromISR(vDeleteUart);// Пробовал писать так
}

Но чего и следовало ожидать, vDeleteUart не объявлена в irq.c, соответственно при компиляции ошибка. Как правильно сделать?
extern void vDeleteSTR(void const * argument); - пробовал - не работает.
Спасибо всем.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Feb 25 2016, 23:01
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



В другом файле написать

extern TaskHandle_t xHandle;
Код
void vAnExampleISR( void )
{
BaseType_t xYieldRequired;

     // Resume the suspended task.
     xYieldRequired = xTaskResumeFromISR( xHandle );

     if( xYieldRequired == pdTRUE )
     {
         // We should switch context so the ISR returns to a different task.
         // NOTE:  How this is done depends on the port you are using.  Check
         // the documentation and examples for your port.
         portYIELD_FROM_ISR();
     }
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Neo_Matrix   Как из обработчика прерывания(вынесен в отдельный файл) вызвать xTaskResumeFromISR   Feb 25 2016, 15:58
- - x893   void vDeleteUart(void const * argument);   Feb 25 2016, 17:39
- - zltigo   QUOTE (Neo_Matrix @ Feb 25 2016, 17:58) Т...   Feb 25 2016, 19:36
- - Neo_Matrix   В первом сообщении закралась ошибка, vDeleteUart н...   Feb 25 2016, 20:50
|- - zltigo   QUOTE (Neo_Matrix @ Feb 25 2016, 22:50) к...   Feb 25 2016, 20:52
- - Neo_Matrix   Хорошо допустим есть main.c c с содержимым: Код#in...   Feb 25 2016, 21:44
- - x893   И описание и пример кода http://www.freertos.org/t...   Feb 25 2016, 21:52
- - Neo_Matrix   x893 Спасибо, но если бы все было в одном main.c в...   Feb 25 2016, 22:19
|- - zltigo   QUOTE (Neo_Matrix @ Feb 26 2016, 00:19) С...   Feb 26 2016, 05:51
|- - Ruslan1   Цитата(zltigo @ Feb 26 2016, 08:51) Разум...   Feb 26 2016, 07:25
- - Neo_Matrix   ЦитатаВ другом файле написатьextern TaskHandle_t x...   Feb 26 2016, 08:18
|- - jcxz   Цитата(Neo_Matrix @ Feb 26 2016, 14:18) О...   Feb 26 2016, 08:38
|- - zltigo   QUOTE (Neo_Matrix @ Feb 26 2016, 10:18) М...   Feb 26 2016, 10:03
- - Neo_Matrix   Цитата(jcxz @ Feb 26 2016, 10:38) Чтобы с...   Feb 26 2016, 08:55
|- - jcxz   Цитата(Neo_Matrix @ Feb 26 2016, 14:55) Н...   Feb 26 2016, 09:04
- - Neo_Matrix   Цитата(jcxz @ Feb 26 2016, 11:04) Вопрос ...   Feb 26 2016, 10:14
|- - zltigo   QUOTE (Neo_Matrix @ Feb 26 2016, 12:14) С...   Feb 26 2016, 12:40
- - esaulenka   Цитата(Neo_Matrix @ Feb 25 2016, 18:58) Н...   Feb 29 2016, 07:31
- - zltigo   QUOTE (esaulenka @ Feb 29 2016, 09:31) Во...   Feb 29 2016, 19:10


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 01:42
Рейтинг@Mail.ru


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