【FreeRTOS】小白进阶之如何创建FreeRTOS任务(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liwei16611/article/details/82464761

创建了两个单独的任务并打印不同的信息。

1、头文件声明

#include "FreeRTOS.h"
#include "task.h"
#include "supporting_functions.h"

// 延时
#define mainDELAY_LOOP_COUNT        ( 0xffffff )

2、任务函数声明

void vTask1( void *pvParameters );
void vTask2( void *pvParameters );

3、创建任务

int main( void )
{
    // 创建任务1
    xTaskCreate(    vTask1,        /* 任务函数指针 */
                    "Task 1",               /* 任务名:调试使用 */
                    1000,                    /* 栈深 */
                    NULL,                   /* 任务参数 */
                    1,                          /* 优先级. */
                    NULL );                /* 任务 handle */

   // 创建任务2
    xTaskCreate( vTask2, "Task 2", 1000, NULL, 1, NULL );

    // 启动任务调动
    vTaskStartScheduler(); 
    for( ;; );
    return 0;
}

// 任务1

void vTask1( void *pvParameters )
{
   const char *pcTaskName = "Task 1 is running\r\n";
   volatile uint32_t ul;
    for( ;; )
    {
        // 打印
        vPrintString( pcTaskName );

       // 延时
        for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
        {}
    }
}


// 任务2

void vTask2( void *pvParameters )
{
  const char *pcTaskName = "Task 2 is running\r\n";
  volatile uint32_t ul;


    for( ;; )
    {
       // 打印
        vPrintString( pcTaskName );

        // 延时
        for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
        {} 
    }
}

猜你喜欢

转载自blog.csdn.net/liwei16611/article/details/82464761