复苏之魔 发表于 2013-8-25 21:45:43

LM35的一个例程的计算公式

val是输出的摄氏温度,dat是从模拟端口直接读出来的数据

val=(125*dat)>>8;//温度计算公式

在极客的计算公式是:val = dat * (5.0 / 1023.0*100);

第一个公式是怎么回事哦,读不懂哪

code-AR 发表于 2013-8-25 23:12:08

>>这个是右移的符号,用法详见http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:bitshift

林定祥 发表于 2013-8-25 23:46:29

>>为右移,右移8位相当除256

林定祥 发表于 2013-8-26 09:11:04

林定祥 发表于 2013-8-25 23:46 static/image/common/back.gif
>>为右移,右移8位相当除256

应该效率高,占用资源少吧,但是只能做2^n次的乘或除.

friskit 发表于 2013-8-26 13:28:52

林定祥 发表于 2013-8-26 09:11 static/image/common/back.gif
应该效率高,占用资源少吧,但是只能做2^n次的乘或除.

曾经测试过。。。单纯的进行 乘除2^n运算跟位移运算效率完全一致。。应该是编译器有优化。用的GCC4.3。。arduino上就不知道了……
页: [1]
查看完整版本: LM35的一个例程的计算公式