系数不写死——用宏推导全项目系数

一句话: 物料从 16 位换成 12 位,全项目十几处硬编码的换算系数都要改。在两个基础量上定义宏,其他系数自动推导——以后换物料只改两行。

适合谁读:改一个系数要翻遍所有文件的嵌入式开发者。

问题

物料换了:从 16 位版换成 12 位版。

16 位版:满量程 65535 → 系数 = 65535/300
12 位版:满量程 4095 → 系数 = 4095/300

之前系数是硬编码的,散落在多个文件、十几个位置。换物料 = 改十几处 = 一定有漏的。

改法:系数溯源

两个基本量不会同时变:

#define DAC_MAX_CODE     4095.0f    // 分辨率
#define DAC_FULL_SCALE   300.0f     // 满量程物理值

// 系数自动推导
#define BASE_COEFF       (DAC_MAX_CODE / DAC_FULL_SCALE)
#define DUAL_COEFF       (DAC_MAX_CODE / (DAC_FULL_SCALE * 2))

以后换芯片:

#define DAC_MAX_CODE     65535.0f   // 只改这一行
// 所有系数自动跟着变

对比

硬编码宏推导
换物料改十几处改 2 行
漏改风险零——系数自动算
可读性不知道数字从哪来一眼看出是 MAX/FULL_SCALE

代码里出现两次以上的计算公式,就值得溯源输入量,用宏推导。


有用的话点个收藏,下次换物料直接查。有问题欢迎评论区交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值