[STM32F1] 都有哪些方法降低软件功耗啊?

[复制链接]
3213|52
 楼主| happy_10 发表于 2021-9-8 23:52 | 显示全部楼层 |阅读模式
都有哪些方法降低软件功耗啊?
stly 发表于 2021-9-8 23:53 | 显示全部楼层
软件功耗?
dingy 发表于 2021-9-8 23:56 | 显示全部楼层
用查表的方法代替实时的计算,尽量减少CPU的运算量。特别是在没有硬件浮点处理单元的MCU进行浮点处理时,直接用MCU进行浮点处理将会消耗大量的时间。
heweibig 发表于 2021-9-8 23:58 | 显示全部楼层
将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效地降低CPU的功耗。
Bobby13 发表于 2021-9-9 08:08 来自手机 | 显示全部楼层
关外设 降低主频 进低功耗模式
songqian17 发表于 2021-9-9 22:06 | 显示全部楼层
很多微处理器都有快速有效的查表指令和寻址方式,用于优化查表算法,这种处理方法在离散余弦变换和AD数据采集中能够了带来可观的效率提升。
llljh 发表于 2021-9-9 22:14 | 显示全部楼层

对于不可避免的实时计算,应注意计算的精度,算到精度够了就应立即结束,避免“过度”的计算。
stly 发表于 2021-9-9 22:16 | 显示全部楼层
在精度允许的情况下,使用简单函数代替复杂函作近似运算,也是减少功耗的有效方法。。
supernan 发表于 2021-9-9 22:18 | 显示全部楼层
尽量使用字符型的8位数据代替16位的整型数据。
stly 发表于 2021-9-9 22:21 | 显示全部楼层
尽量使用分数运算而避免浮点运算
juventus9554 发表于 2021-9-9 22:23 | 显示全部楼层
可以用移位运算代替乘除运算。
pengf 发表于 2021-9-9 22:45 | 显示全部楼层
采用MCU计算乘除也是非常耗时的,如果采用左移和右移的办法来实现乘除法运算,将会减少运算时间,注意,除法的移位计算只能针对除数比较特殊的情况。
ousj 发表于 2021-9-9 22:47 | 显示全部楼层
数字信号处理中的运算,采用FFT和快速卷积等,可以节省大量运算时间。
wuhany 发表于 2021-9-9 22:49 | 显示全部楼层
一个程序使用中断方式还是查询方式,对于很多应用来说并不是那么重要,但在软件低功耗设计特性上却相差甚远。
ousj 发表于 2021-9-9 22:53 | 显示全部楼层
采用定时器,在程序中可以采用软件延时,但是,如果系统的定时器资源充裕,在需要定时的场合,最好采用硬件定时器,当定时器到定时后,向MCU发出中断请求信号。
huangchui 发表于 2021-9-9 22:53 | 显示全部楼层
你是说执行的次数吗?使用汇编语言还可以的。
wyjie 发表于 2021-9-9 22:55 | 显示全部楼层

将运算的结果预先算好,放在Flash中,尽量减少CPU的运算工作量
chuxh 发表于 2021-9-9 23:00 | 显示全部楼层
软件功耗,软件有什么功耗呢?
pengf 发表于 2021-9-9 23:02 | 显示全部楼层
尽量降低器件的工作频率。。。。
huangchui 发表于 2021-9-9 23:04 | 显示全部楼层
从MCU选型开始
您需要登录后才可以回帖 登录 | 注册

本版积分规则

744

主题

7973

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部