OS_Task_Create (priority, TaskName)
Инициализируем конкретную задачу. Этот сервис ищет в памяти свободный дескриптор задачи и записывает в него адрес создаваемой задачи, приоритет и флаги состояния. Изначально задача считается готовой к выполнению. Как только эта задача станет самой приоритетной из готовых, она получит управление.
При использовании mikroC PRO: все фунции-задачи должны быть описаны директивой #pragma fncall, напрмер:
#pragma fncall main MyTask
void MyTask (void)
{
…
Только не из прерывания
priority |
Приоритет. Может быть от 0 (высший) до 7 (низший) |
TaskName |
Имя функции, которая будет использоваться как задача. |
FSR (FSR0) |
Указывает на дескриптор задачи. Обычно в нем нет необходимости, но если будет нужно изменять приоритет этой задачи из другой, то можно пользоваться этим указателем. |
void Task1 (void) { for (;;) OS_Yield(); } void Task2 (void) { for (;;) OS_Yield(); } void main (void) { OS_Init(); OS_Task_Create (1, Task1); // Создаем задачу Task1 с приоритетом 1 OS_Task_Create (5, Task2); // Создаем задачу Task1 с приоритетом 5 /*...*/ }
OS_CreateTask