这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机用C或汇编编写代码对功耗真有很大区别吗?

共6条 1/1 1 跳转至

单片机用C或汇编编写代码对功耗真有很大区别吗?

工程师
2021-07-28 20:14:50     打赏

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





关键词: 功耗     汇编    

专家
2021-07-29 00:02:38     打赏
2楼

感谢楼主的分享,很实用了。


专家
2021-07-29 09:22:17     打赏
3楼

谢谢分享,谢谢。


工程师
2021-07-29 22:31:04     打赏
4楼

C代码和汇编代码对功耗肯定没有区别啊!

但是有个运行效率问题,因为这个问题有可能在扫描显示方式下出现数码管显示时间不同,这会造成功耗增大。因没实际测试,只是猜测供参考。


工程师
2021-07-29 22:47:53     打赏
5楼

写的好,功耗就低,反之高!


工程师
2021-07-29 22:53:04     打赏
6楼

对于MCU全速运行,C代码和汇编代码对功耗没有区别。
不同厂家的MCU工作电流不同,你测下电流就知道了。
阻容降压,等于是恒流供电,所以电流一定要留点余量。比如工作电流最大是20mA,则恒流值最少为25mA或以上。


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]