模拟量计算在强制的时候出问题了 点击:369 | 回复:5



jacklxy

    
  • 精华:0帖
  • 求助:8帖
  • 帖子:9帖 | 86回
  • 年度积分:0
  • 历史总积分:477
  • 注册:2014年3月07日
发表于:2014-07-23 13:59:10
楼主

我哪里写错了还是其他的原因,请大神赐教~~~




hpulizhong

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 350回
  • 年度积分:0
  • 历史总积分:1282
  • 注册:2011年2月24日
发表于:2014-07-23 14:13:29
1楼

计算值太大,超过32767,溢出了。

 

jacklxy

  • 精华:0帖
  • 求助:8帖
  • 帖子:9帖 | 86回
  • 年度积分:0
  • 历史总积分:477
  • 注册:2014年3月07日
发表于:2014-07-23 14:20:28
2楼

回复内容:

对: hpulizhong  计算值太大,超过32767,溢出了。  内容的回复!


 呵呵~~

LCL———王者之师

  • 精华:0帖
  • 求助:9帖
  • 帖子:62帖 | 478回
  • 年度积分:197
  • 历史总积分:34719
  • 注册:2011年9月24日
发表于:2014-07-23 22:08:08
3楼

你可以调用scal 那个库文件来计算

jacklxy

  • 精华:0帖
  • 求助:8帖
  • 帖子:9帖 | 86回
  • 年度积分:0
  • 历史总积分:477
  • 注册:2014年3月07日
发表于:2014-07-24 15:00:44
4楼

回复内容:

对: LCL———王者之师  你可以调用scal 那个库文件来计算 内容的回复!


 请具体说一下

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-07-26 17:30:03
5楼

      这是对转换公式“T=(AIW0-6400)*100 / (32000-6400)” 编写的整数字的运算程序,由于LW0(即AIW0)的取值范围:6400~32000,而运算选用字存储器乘法指令,故当AIW0值过大时,必然会造成运算溢出的错误。改正的办法:

1、将AIW0先转换为双字输入给LD0,

2、上式的减、乘、除运算都改为双字运算。

   改后的程序如下:

 

 

 


热门招聘
相关主题

官方公众号

智造工程师