利用循环移位指令,有一点很疑惑 点击:514 | 回复:4



湛蓝小尔

    
  • 精华:1帖
  • 求助:142帖
  • 帖子:180帖 | 473回
  • 年度积分:14
  • 历史总积分:1399
  • 注册:2014年2月19日
发表于:2014-07-24 09:54:15
楼主

效果是Q0.0通3秒,断5秒,然后Q0.1通3秒,断5秒,一直循环

为什么改变了定时器顺序,一个程序可以,一个程序就错乱了

下图为错乱程序,无法理解

情况是接通后,4个灯全部点亮,又好像在瞬间熄灭的趋势,然后又亮了,

下图为正确程序




wyb2866255---王者之师

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

T37=1的时间为3秒,而T38=1的时间仅为一个扫描周期,前一段程序是用T37循环左移MB0,其MB0将在3秒内多次循环,故出现“4个灯全部点亮,又好像在瞬间熄灭的趋势,然后又亮了”。而后一段程序是用T38循环左移MB0,由于T38=1仅为1个扫描周期,故MB0值循环左移一位,故程序运行正常。

  

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-07-24 20:41:52
2楼

    下面根据“Q0.0通3秒,断5秒,然后Q0.1通3秒,断5秒,一直循环”的控制要求,编写的一段程序供参考:

湛蓝小尔

  • 精华:1帖
  • 求助:142帖
  • 帖子:180帖 | 473回
  • 年度积分:14
  • 历史总积分:1399
  • 注册:2014年2月19日
发表于:2014-07-28 10:06:18
3楼

回复内容:

对: wyb2866255---王者之师  T37=1的时间为3秒,而T38=1的时间仅为一个扫描... 内容的回复!


 移位不是说上升沿一次移位一次吗,

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2014-07-28 11:59:54
4楼

回3楼:移位没有规定是用上升沿一次移位一次之说,如:T37=1的时间为3秒,程序在3秒内如循环扫描N次。移位指令将重复移位N次。如用T37=1的前沿驱动左移指令,该移位指令才只执行一次左移位。


热门招聘
相关主题

官方公众号

智造工程师