int main(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
LED_Init();
__enable_interrupt();
OSInit();
OSTaskCreate(TestTask1,(void *)0,&TestTaskStk1[99],0);
OSStart();
}
void TestTask1(void *pdata)
{
char flag=0;
pdata=pdata;
Tim1_Init(); //初始化定时器 10ms一次中断
SetLedON();
while(1)
{
OSTimeDly(100); //程序在此休眠,进入别的任务,等到调用OSTimeISR中的OSTickTime进行检测是否有优先级更高的任务
if(flag==0)
{
SetLedOFF();
flag=1;
}
else
{
SetLedON();
flag=0;
}
}
}
1:如上代码,为什么在任务中要有一个OSTimeDly(100); 没有这个延时不行吗?
没有延时是不是就不会运行低优先级的任务了?为什么?
2:如果再创建一个任务,是不是写个像void TestTask1(void *pdata) 这样的函数就OK 了,要注意哪些地方代码变化?
求高手指教。