求助三菱FX2N的除法运算 点击:1281 | 回复:4



电器不好做啊

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:61帖 | 128回
  • 年度积分:0
  • 历史总积分:330
  • 注册:2003年5月16日
发表于:2004-02-28 15:10:00
楼主
我用一个高速计数器C252来取得编码器的值,现在我希望把这个值乘以0.833,然后再把结果传送至D0,D1中拿去使用,请问哪位前辈知道该如何编程? 若用MUL指令该如何能达到此目地?



电器不好做啊

  • 精华:2帖
  • 求助:0帖
  • 帖子:61帖 | 128回
  • 年度积分:0
  • 历史总积分:330
  • 注册:2003年5月16日
发表于:2004-02-02 15:06:00
1楼
如果我用浮点运算的EADD乘法乘以K833再将结果用EDIV除法除以K1000可否? 结果是否要再做什么处理?

电器不好做啊

  • 精华:2帖
  • 求助:0帖
  • 帖子:61帖 | 128回
  • 年度积分:0
  • 历史总积分:330
  • 注册:2003年5月16日
发表于:2004-02-02 15:20:00
2楼
抱歉,写错了,上面的EADD应改成EMUL. 有哪位前辈可以提供帮助吗? 谢谢!

电器不好做啊

  • 精华:2帖
  • 求助:0帖
  • 帖子:61帖 | 128回
  • 年度积分:0
  • 历史总积分:330
  • 注册:2003年5月16日
发表于:2004-02-04 18:30:00
3楼
没有人能回答我这个问题?还是不屑?

莫其麟

  • 精华:14帖
  • 求助:0帖
  • 帖子:120帖 | 5688回
  • 年度积分:0
  • 历史总积分:29157
  • 注册:2004年2月27日
发表于:2004-02-28 15:10:00
4楼
先乘833、再除以1000的方法可以,似乎不用浮点运算也可。 设C252为最大的正数32767,则乘833后为27294911、为25位二进制数1101000000111110010111111,除以1000后,为27294.911,其整数部分和余数部分各用一个数据存储器即可,例如:D0存放整数、D1存放余数。以下是一个示意程序。 0 LD M8000 1 MOV C252 D20 6 LD M8000 7 MUL D20 K833 D10 14 LD M8000 15 DDIV D10 K1000 D12 28 LD M8000 29 MOV D12 D0 34 LD M8000 35 MOV D14 D1 41 END 由于(D11)(D10)除以1000,其结果中商和余数均各用一个D即可,另外的内容为0(通过上述分析可知),所以只需将(D12)、(D14)分别送D0、D1即可。这里仅提供一种试验,未知可否作参考。此处用浮点运算好象显得复杂。

热门招聘
相关主题

官方公众号

智造工程师