打印

AVR数学计算的疑问!!很奇怪!

[复制链接]
2131|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zkkov2000|  楼主 | 2010-4-27 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学AVR,现在用MEG16,开发环境ICCAVR,这几天在调试程序,发现个奇怪问题,volt_temp *= 2;或volt_temp <<= 1;或volt_temp = 1000 - volt_temp;类似的都出问题。计算结果不对。
是不是AVR对数学计算有什么限制还是我的头文件没加什么文件,还是AVR的数学计算写法和51不一样?搞的有点晕!

相关帖子

沙发
zkkov2000|  楼主 | 2010-4-27 16:32 | 只看该作者
volt_temp 的类型是int volt_temp ;

使用特权

评论回复
板凳
ayb_ice| | 2010-4-27 16:38 | 只看该作者
AVR本来就是垃圾
好象听说过类似的问题,建议用非常常规的写法,另外加强制类型转换,还有可能库不对

使用特权

评论回复
地板
zkkov2000|  楼主 | 2010-4-27 16:46 | 只看该作者
AVR数学计算还没51好,真不爽!

使用特权

评论回复
5
宇容创行| | 2010-4-27 21:35 | 只看该作者
楼主自己错了

使用特权

评论回复
6
zkkov2000|  楼主 | 2010-4-28 13:31 | 只看该作者
5楼是什么意思?我什么地方错了,详细点描述下!谢谢!

使用特权

评论回复
7
zkkov2000|  楼主 | 2010-4-28 19:05 | 只看该作者
搞定了,原来是其他地方造成的。
我些了个函数控制DA的输出,这个函数在主程序的while(1)死循环之前,程序进入while(1)后在里边循环,我没有吧涉及到while(1)里的外部器件接上,程序可能死在了某个地方了。所以导致DA输出直接变为了0.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

306

帖子

1

粉丝