50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
#include "LedTest.h"
|
|
|
|
/* OS相关 */
|
|
#define TASK_STACK_SIZE 128 //任务栈大小
|
|
|
|
/* OS相关 */
|
|
TX_THREAD LedCtlTaskTCB; //LED控制任务句柄
|
|
static uint8_t TaskStack[TASK_STACK_SIZE]; //任务栈空间
|
|
|
|
void LedCtlTask(ULONG thread_input);
|
|
|
|
/**
|
|
* @brief LED控制任务初始化
|
|
* @param Level任务优先级 Preemption抢占阈值
|
|
* @retval void
|
|
* @note void
|
|
* @example void
|
|
*/
|
|
void LedCtlTaskInit(uint8_t Level,uint8_t Preemption)
|
|
{
|
|
tx_thread_create(&LedCtlTaskTCB, /* 任务句柄 */
|
|
"LedCtlTask", /* 任务名称 */
|
|
LedCtlTask, /* 任务入口函数 */
|
|
0, /* 任务参数 */
|
|
&TaskStack[0], /* 任务栈起始地址 */
|
|
TASK_STACK_SIZE, /* 任务堆栈大小 */
|
|
Level, /* 优先级 */
|
|
Preemption, /* 抢占阈值 */
|
|
TX_NO_TIME_SLICE, /* 不使用时间片轮转 */
|
|
TX_AUTO_START); /* 自动启动线程 */
|
|
}
|
|
/**
|
|
* @brief LED控制任务
|
|
* @param ThreadXInput 任务参数
|
|
* @retval void
|
|
* @note void
|
|
* @example void
|
|
*/
|
|
void LedCtlTask(ULONG ThreadXInput)
|
|
{
|
|
(void)ThreadXInput;
|
|
|
|
while (true)
|
|
{
|
|
IoCtlLedToggle(LED2);
|
|
tx_thread_sleep(100);
|
|
}
|
|
}
|
|
|