#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "FreeRTOS.h"
#include "task.h"
#define START_TASK_SIZE 120
#define START_TASK_PRIO 1 //0和31 不能选 空闲任务的优先级是0 以及定时器是31
TaskHandle_t StartTask_Heander; //任务句柄
void start_task( void * pvParameters ); //任务声明
//task 1
#define START_TASK1_SIZE 120
#define START_TASK1_PRIO 1 //0和31 不能选 空闲任务的优先级是0 以及定时器是31
TaskHandle_t StartTask1_Heander; //任务句柄
void task1_task( void * pvParameters ); //任务声明
//task 2
#define START_TASK2_SIZE 120
#define START_TASK2_PRIO 1 //0和31 不能选 空闲任务的优先级是0 以及定时器是31
TaskHandle_t StartTask2_Heander; //任务句柄
void task2_task( void * pvParameters ); //任务声明
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4
delay_init(); //延时函数初始化
uart_init(115200); //初始化串口
LED_Init(); //初始化LED
xTaskCreate( (TaskFunction_t) start_task,
(char *) "start_task",
(uint16_t) START_TASK_SIZE,
(void *) NULL,
(UBaseType_t) START_TASK_PRIO,
(TaskHandle_t *) &StartTask_Heander );
vTaskStartScheduler();
}
void start_task( void * pvParameters )
{
//task1
xTaskCreate( (TaskFunction_t) task1_task,
(char *) "start_task1",
(uint16_t) START_TASK1_SIZE,
(void *) NULL,
(UBaseType_t) START_TASK1_PRIO,
(TaskHandle_t *) &StartTask1_Heander );
//task2
xTaskCreate( (TaskFunction_t) task2_task,
(char *) "start_task2",
(uint16_t) START_TASK2_SIZE,
(void *) NULL,
(UBaseType_t) START_TASK2_PRIO,
(TaskHandle_t *) &StartTask2_Heander );
vTaskDelete(StartTask_Heander);
}
void task1_task( void * pvParameters )
{
while(1){}
}
void task2_task( void * pvParameters )
{
while(1){}
}
FreeRtos动态任务的创建示例
于 2024-02-03 22:36:07 首次发布