最近我用一国产单片机来驱动三位数码管显示(有用的是阻容降压供电方式),遇到功耗过高的问题。造成数码管显示闪动,整机以上电工作几秒就复位了。(声明一下,相同的硬件,之前用的台系和进口的单片机没有这个问题)。我是用C写的代码跟之前台系和进口的基本一样(除相关寄存器设置不同)。此芯片提供内部16M高频晶振。我降低了相关频率来工作(因为仿真器上面看不出问题,只有一次一次的试整机,结果都一样)。最后没办法,我改用汇编来写,相关的配置跟C一样,结果就没有这个问题了。所以觉得很奇怪,特发一文想跟大家一起讨论一下,C代码 和汇编代码对功耗真有很大区别吗? |