学DSP C2000系列,看了很多例程和文档,发现程序架构基本是以下这种结构:
这种结构的好处是什么呢?用一个super loop不停轮询,不需要定时器也可以啊,这样CPU的使用率还更高
这种结构唯一我能想到的好处是任务执行具有时间确定性,不过这需要计算每个任务的运行时间,合理分配好定时的值,不过麻烦。。 问题:除此之外还有其他隐藏的好处吗? 从CPU使用率来看,是轮询更好些,然而也正如你所说,有的任务是有实时要求的,尤其是中断嵌套这种情况。
鉴于你都是定时器任务,确实轮询更合适;
不过如果还要考虑低功耗优化,没事儿干的时候CPU需要IDLE进入低功耗模式,那么就只能定时器中断或其他中断唤醒了。
1、容易控制任务执行间隔。实际上很多任务的执行并不是频率越高越好,另外任务的执行很多时候对确定的执行时间间隔有要求。
2、功耗,不需要执行任务的时候系统可以进入休眠或者低功耗的工作状态,更节省能量
|