其实单片机永远不会闲着
所谓负载率针对有操作系统的。
当单片机在完成有意义的工作时,认为有负载。
处于延时、等待某个事件时的空循环,认为是空闲。
许多操作系统都会有个空闲任务,空闲任务一般不干“正事”。我们可以在空闲任务里加个计数器,每秒累加一次。大多数MCU都会有个RTC,系统可以读取单片机运行了多长时间。两者相除,就可以得到空闲比。
我认为,对单片机开发来讲,空闲比只对开发者有意义,可以了解代码的运行效率。
空闲比太小,代码是否需要优化了。
空闲比太大,考虑是否换个低档次的MCU降低成本。
单片机不会降频,睿频的,一开机时钟设置好,就按照一个主频运行下去,除非进低功耗模式
单片机负载其实是计算任务使用的时间,假如 1000 次心跳,任务占用了 400 个,负载就是 40%,通过 idle 钩子函数自己实现的,粗略能看出单片机负载,不是很精确,因为有中断,有任务自己调度等,会干扰
用操作系统就可以了,里面有输出cpu负载率,比如ucos