使用移位的方法做除法计算

原理: 二进制右移几位,就等于除以了2的几次方.

在进行AD采集计算的时候, 会需要使用采集到的AD值, 除以满量程的AD值, 再乘以基准电压的方法来计算采集到的电压值. 

以12位ADC为例, 基准电压3.3V, 3300mv, 正常情况下, c语言是这样写的:

uint16_t adVal =0;

uint32_t volt_mv = 0; 

volt_mv = (adVal *3300)/4096;

特殊情况下, 也可以利用二进制移位除法的原理, 来写程序:

volt_mv  = (adVal *3300)>>12; /*二进制右移12位,即等于舍去小数点的除以2的12次方*/

同理,  (adVal *3300)>>8 等价于  (adVal *3300)/256

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值