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

 
 
> Как из обработчика прерывания(вынесен в отдельный файл) вызвать 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
Ответов
Neo_Matrix
сообщение Feb 25 2016, 22:19
Сообщение #2


Участник
*

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



x893
Спасибо, но если бы все было в одном main.c все сработало бы.Я не могу понять как в данном случае объявить ХЭНДЛ в стороннем файле, если extern применить не ясно как(для меня). В моем случае получается multiply defined vDeleteSTR.

Сообщение отредактировал Neo_Matrix - Feb 25 2016, 22:19
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 26 2016, 05:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Neo_Matrix @ Feb 26 2016, 00:19) *
Спасибо, но если бы все было в одном main.c все сработало бы.

Разумется нет. Совсем нет. Сам вызов принципиально неправилен и не рабоспособен. Документация!


--------------------
Feci, quod potui, faciant meliora potentes
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
|- - Ruslan1   Цитата(zltigo @ Feb 26 2016, 08:51) Разум...   Feb 26 2016, 07:25
- - x893   В другом файле написать extern TaskHandle_t xHand...   Feb 25 2016, 23:01
- - 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 Текстовая версия Сейчас: 30th July 2025 - 05:45
Рейтинг@Mail.ru


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