两个问题:
1、用哪种模式好?
2、延时遇到问题,两种都试了下没用,
延时用的。无论写的delay_ms(3000)还是6000,延时最大只有1.2S,不科学呢,按道理只会拖后呀
//延时 nms,会引起任务调度
//nms:要延时的 ms 数
//nms:0~65535
void delay_ms(u32 nms)
{
if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系统已经运行
{
if(nms>=fac_ms) //延时的时间大于 OS 的最少时间周期
{
vTaskDelay(nms/fac_ms); //FreeRTOS 延时
}
nms%=fac_ms; //OS 已经无法提供这么小的延时了,
//采用普通方式延时
}
delay_us((u32)(nms*1000)); //普通方式延时
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
时间是对的,是我看错了,抢占不会会 优先级高的运行的多呢?打扰了优先级低的,比如我串口中断接收GPS,任务里面解析,有时候就解析失败,数据不全
一周热门 更多>