栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

5 FreeRtos创建单任务

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5 FreeRtos创建单任务

五 FreeRtos创建单任务源码
#include 
#include "board.h"
#include "led.h"
#include "uart.h"



const uint32_t OscRateIn = MAIN_OSC_XTAL_FREQ_HZ;				 
const uint32_t ExtRateIn = EXT_CLOCK_IN_FREQ_HZ;				 

 //系统复位
#define	System_restart	(LPC_SWM->PINENABLE0 = 0xffffffffUL)

#include "FreeRTOSConfig.h"

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


  
 static TaskHandle_t AppTaskCreate_Handle;
 	
 static TaskHandle_t LED0_Task_Handle;	




	static void prvSetupHardware(void)
	{

	SystemCoreClockUpdate();

	DEBUGINIT();
	led_Init() ;	

	Board_UARTPutSTR("build date: " __DATE__ " build time: " __TIME__ "n");

}




static void vLEDTask0 (void *pvParameters)
{
	bool LedState = false;
	while (1) {
		Board_LED_Set(0, LedState);
		LedState = (bool) !LedState;

		vTaskDelay(configTICK_RATE_HZ/2);
	}
}


	static void AppTaskCreate(void *pvParameters)
	{
	baseType_t xReturn =pdPASS;
	taskENTER_CRITICAL();//进入临界区,禁止中断打断
	

	xReturn=xTaskCreate(vLEDTask0, 
						"vTaskLed0",
						configMINIMAL_STACK_SIZE, 
						NULL, 
						(tskIDLE_PRIORITY + 2UL),
						(TaskHandle_t *) &LED0_Task_Handle);
	
	if(pdPASS==xReturn)
	{
	//		printf("创建LED_Task任务成功rn");
		
	}
	vTaskDelete(AppTaskCreate_Handle);//删除AppTaskCreate任务
	//	
	taskEXIT_CRITICAL(); //退出临界区
	

}


	int main(void)
	{
	
	baseType_t xReturn =pdPASS;
	
	prvSetupHardware();
	

 	Board_UARTPutSTR("FreeRTOS 动态创建任务nr");
 	 
 	xReturn=xTaskCreate((TaskFunction_t)AppTaskCreate,//任务入口
 						(const char*)"AppTaskCreate",//任务名字
 						(uint16_t)128,//任务栈大小
 						(void*)NULL,//任务参数
 						(UbaseType_t)1,//任务优先级
 						(TaskHandle_t)&AppTaskCreate_Handle
 						);

//	xReturn=xTaskCreate(AppTaskCreate, 
//						"AppTaskCreate",
//						configMINIMAL_STACK_SIZE, 
//						NULL, 
//						(tskIDLE_PRIORITY + 0),
//						(TaskHandle_t *) NULL);


	 if(pdPASS==xReturn)
	 {
		vTaskStartScheduler();//任务调度
	 }


 
	
	while (1) {}


}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691655.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号