永发信息网

MSP430一段程序读不懂求助!!

答案:3  悬赏:20  手机版
解决时间 2021-03-13 07:45
MSP430一段程序读不懂求助!!
最佳答案
这是用左移来实现乘法的例子,因为在单片机里,没有乘法器的话,实现乘法需要很多的时钟周期,作为一种替代,用移位的方法能够轻松实现×2、×4、×8......,因为单片机要实现移位很容易。
例如,caltmp << 5 ,就是caltmap 二进制左移 5位,假设caltsrc=0b011=3,左移五位就成了 0x01100000=96,实现了×32。

这样第二条式子就很好理解了, caltmp = (caltmp << 5) + Hex_Val; 实际上就是

caltmp=caltmp×32+caltmp=caltmp×33 了,下面也一样。

最后一条,左移相当于相乘,那右移自然就相当于除法了。caltmp>>12=caltmp÷2^12追问谢谢
那他为什么要把16进制的数先乘以33 然后在乘以10 最后除以2的12次方,这是怎么转换的?
那我要写一个数乘以55的话 按照这种写法是不是这么写:
caltmp = (caltmp << 5)+(caltmp << 4)+(caltmp << 2)+(caltmp << 1)+Hex_Val;?

除了这个,还有别比较好的表示方法么?
全部回答
恩,这个为何这么转换我也不懂,只想说写这个的人是不是太刁了,放着简单的不写追问除了这个,还有别比较好的表示方法么?追答直接称啊
代码的意思,生命联络员已经跟你解释清楚了,我给你解释一下为什么这么算。
MSP430的ADC参考电压是3.3V,ADC的位数是12位。所以
采样的电压值 = 转换出来的值 * 330 / (2的12次方)。
这里把电压值放大了100倍,为什么呢?为了计算更快捷,无论什么处理器,整型运算肯定会快于浮点运算的,而且快的不只是一点点,你自己回忆一下浮点变量是几位的,而整型变量又是几位的;还为了更方便的把电压值显示到LCD上面,例如显示330,只要人为的加一个小数点就可以了。而3.30,如果不做处理直接显示的话,只能显示为3V,小数点部分没有了,因为液晶只能显示字符型变量。
你试想一下,如果采样电压大于等于3.30V参考电压,转换出来的是什么值,没错,就是0FFFH,也就是2^12,这是它的最大量程。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我们都是坏孩子里面的插曲
三星电视一半屏幕暗了,求助
我想用‘’文哲“组成一个成语当网名知道的说
世界上治安最好的国家都有哪些??
红颜迟暮是什么意思
睡不好觉,总感觉心悸,怎么办
榴莲酥的家常做法大全怎么做好吃视频
原汤牛肉粉面馆这个地址在什么地方,我要处理
培养皿为什么要倒置培养
想问下沙巴和仙本那有什么区别,距离多远,两
小小东江餐饮(武江三店)我想知道这个在什么地
财务丢失多少可以立案
请问血压高压123低压51有问题吗
有收购中药材多花黄精的吗?带价回复!
翠景居停车场地址有知道的么?有点事想过去
推荐资讯
哪个牌子的开关电源好用?
“出兑”店面中的 “出兑”是什么意思 ?
移民国外大概需要多少钱
贵阳市熄烽县房屋改造补助款是多少?
小麻地头地址在什么地方,想过去办事
dnf90红眼史诗套哪个
..猴和猪相克吗?
求购加工中心刀片数控刀片
水落石出演员表
兴华名城南门地址在哪,我要去那里办事
传统扬州炒饭的简介
西方人在什么时候吃甜品
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?