需要注意的是,TMOS(任务管理系统)的时基是625us。每个Take任务最多能有15个事件;
创建一个TMOS任务,需要分五步:
1.创建任务TakeID
static uint8_t LEDTaskId = INVALID_TASK_ID;
2.定义一个事件标志
#define LEDTask1_EVT 0x0001
3.注册任务事件
LEDTaskId = TMOS_ProcessEventRegister(LEDTask1_ProcessEvent);//将事件的回调函数注册到 TMOS 中,并生成唯一的 8 位任务 ID。
4.调用事件
tmos_start_task(LEDTaskId, LEDTask1_EVT, 1600);//1600*625us=1S
5.任务函数
uint16_t LEDTask1_ProcessEvent(uint8_t task_id, uint16_t events)
{
if(events & LEDTask1_EVT )
{
GPIOA_InverseBits(GPIO_Pin_3);//电平反转
tmos_start_task(LEDTaskId, LEDTask1_EVT, 1600);//1600*625us=1s,
return (events ^ LEDTask1_EVT);
}
}