嵌入式学习小组
直播中

王蓓

7年用户 195经验值
私信 关注

为什么UCOS III某任务用lcd打印出的CPU占用率一直是0?

统计任务的宏我打开了,然后用lcd打印出某任务占CPU的占用率发现一直是0,程序如图。因为我这条lcd打印的函数只能打印整数,所以我怀疑Led0TaskTCB.CPUUsage可能是小数,所以才在我lcd上显示是0.所以我把Led0TaskTCB.CPUUsage乘100再输出,发现还是0!!!求解啊

回帖(7)

张虎豹

2019-9-25 08:01:07
你确定显示正常吗,你确定这个任务运行了吗。
举报

李子崴

2019-9-25 08:21:04
任务能运行的,因为看到了welcome等字样。而且这个函数也能显示的,图上176行那里,如果不注释掉的话,是能显示东西的。像176行注释掉那句会显示39
举报

孙喆

2019-9-25 08:31:28
我刚刚也遇到这个问题
void start_task(void * pdata)
{
    OS_CPU_SR cpu_sr=0;
    pdata = pdata;
    OSStatInit();            //cpu统计任务初始化
    OS_ENTER_CRITICAL();      //进入临界区,无法被中断打断
........................
}
注意OSStatInit(); 的位置,不能放在OS_ENTER_CRITICAL(); 之后,但要在OSInit();之后
举报

朱利华

2019-9-25 08:49:11
哥,你这是ucosII吧?我是ucosIII。原子哥的统计任务任务初始化那里有个宏,不用我去写初始化啊........
举报

更多回帖

发帖
×
20
完善资料,
赚取积分