xTaskCreate

xTaskCreate

task. h

 

创建新的任务并添加到任务队列中,准备运行

 

Parameters:
pvTaskCode  指向任务的入口函数. 任务必须执行并且永不返回 (即:无限循环).
pcName  描述任务的名字。主要便于调试。最大长度由configMAX_TASK_NAME_LEN.定义
usStackDepth  指定任务堆栈的大小 ,堆栈能保护变量的数目- 不是字节数. 例如,如果堆栈为16位宽度,usStackDepth定义为 100, 200 字节,这些将分配给堆栈。堆栈嵌套深度(堆栈宽度)不能超多最大值——包含了size_t类型的变量
pvParameters  指针用于作为一个参数传向创建的任务
uxPriority  任务运行时的优先级( 0 : 优先级最低)
pvCreatedTask  用于传递一个处理——引用创建的任务
返回:
pdPASS 是如果任务成功创建并且添加到就绪列中,另外错误代码在projdefs. H文件定义

使用例子:

 

 

 

 

 
  
// 使用句柄来删除任务 vTaskDelete( xHandle ); }
 
  
// 创建任务,存储处理。注意传递的参数为ucParameterToPass //它在任务中不能始终存在, 所以定义为静态变量. 如果它是动态堆栈的变量,可能存在 // 没有那么长,或者至少随着时间毁灭, // 新的时间, 尝试存储它 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
 
  
// 函数来创建一个任务 void vOtherFunction( void ) { static unsigned char ucParameterToPass; xTaskHandle xHandle;
 
  
// 创建任务 void vTaskCode( void * pvParameters ) { for( ;; ) { // 任务代码 } }
 
  
portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask );

你可能感兴趣的:(xTaskCreate)