比神乐 发表于 2024-12-4 23:38

【AT-START-L021测评】任务函数

代码:
#include "at32l021_board.h"
#include "at32l021_clock.h"
#include "FreeRTOS.h"
#include "task.h"

/** @addtogroup UTILITIES_examples
* @{
*/
static const char *pcTextForTask1="Task 1 is running\r\n";
static const char *pcTextForTask2="Task 2 is running\r\n";

/** @addtogroup FreeRTOS_demo
* @{
*/
/* led2 task function */
void vTaskFunction(void *pvParameters)
{
        char *pcTaskName;
        pcTaskName=(char * )pvParameters;
while(1)
{
                printf("%s\r\n",pcTaskName);
    vTaskDelay(1000);
}
}



//void vTask1(void *pvParameters);
//void vTask2(void *pvParameters);
/**
* @briefmain function.
* @paramnone
* @retval none
*/
int main(void)
{
system_clock_config();

/* init led2 and led3 */
at32_led_init(LED2);
at32_led_init(LED3);

/* init usart1 */
uart_print_init(115200);

/* enter critical */
taskENTER_CRITICAL();

/* create led2 task */
xTaskCreate((TaskFunction_t )vTaskFunction,
               (const char*    )"vTask1",
               (uint16_t       )512,
               (void*          )pcTextForTask1,
               (UBaseType_t    )1,
               (TaskHandle_t*)NULL);

/* create led3 task */
xTaskCreate((TaskFunction_t )vTaskFunction,
               (const char*    )"vTask2",
               (uint16_t       )512,
               (void*          )pcTextForTask2,
               (UBaseType_t    )2,
               (TaskHandle_t*)NULL) ;


/* exit critical */
taskEXIT_CRITICAL();

/* start scheduler */
vTaskStartScheduler();
}

运行效果:

页: [1]
查看完整版本: 【AT-START-L021测评】任务函数