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

[复制链接]
查看11 | 回复3 | 2013-8-15 08:27:56 | 显示全部楼层 |阅读模式
代码的意思,生命联络员已经跟你解释清楚了,我给你解释一下为什么这么算。MSP430的ADC参考电压是3.3V,ADC的位数是12位。所以采样的电压值 = 转换出来的值 * 330 / (2的12次方)。这里把电压值放大了100倍,为什么呢?为了计算更快捷,无论什么处理器,整型运算肯定会快于浮点运算的,而且快的不只是一点点,你自己回忆一下浮点变量是几位的,而整型变量又是几位的;还为了更方便的把电压值显示到LCD上面,例如显示330,只要人为的加一个小数点就可以了。而3.30,如果不做处理直接显示的话,只能显示为3V,小数点部分没有了,因为液晶只能显示字符型变量。你试想一下,如果采样电压大于等于3.30V参考电压,转换出来的是什么值,没错,...
回复

使用道具 举报

千问 | 2013-8-15 08:27:56 | 显示全部楼层
这是用左移来实现乘法的例子,因为在单片机里,没有乘法器的话,实现乘法需要很多的时钟周期,作为一种替代,用移位的方法能够轻松实现×2、×4、×8......,因为单片机要实现移位很容易。例如,caltmp << 5 ,就是caltmap 二进制左移 5位,假设caltmap=0b011=3,左移五位就成了 0x01100000=96,实现了×32。...
回复

使用道具 举报

千问 | 2013-8-15 08:27:56 | 显示全部楼层
恩,这个为何这么转换我也不懂,只想说写这个的人是不是太刁了,放着简单的不写...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行