谁有本事解释这段程序… 点击:434 | 回复:3



SIMATIC

    
发表于:2012-01-11 16:52:15
楼主
      L     #last_CPUclock                   //last status of CPU clock memory byte
      L     #iCPUClock                        //CPU clock memory byte
      T     #last_CPUclock
      XOW  
      L     #iCPUClock
      AW   
      T     #oCPUClock_Edge              //CPU CLOCK EDGE
如果说系统时钟为MB0即为iCPUClock,last_cpuclock,是一字节形式的临时变量,那么这段程序的运算结果是什么,这样做的作用是什么呢?


楼主最近还看过



BH黑马

  • 精华:0帖
  • 求助:3帖
  • 帖子:21帖 | 99回
  • 年度积分:0
  • 历史总积分:1042
  • 注册:2010年3月24日
发表于:2012-01-12 13:57:58
1楼
#last_cpuclock 与#icpuclock异或得出两个字的不同位为1,再将结果与#cpuclock作与运算,最后得出的是 #icpuclock与 #last_cpuclock 不同位的哪几个位是1,程序的目的是检查同步?没怎么看出本意

wingwf2000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2012-01-12 15:29:10
2楼

令Qn= #iCPUClock,Q(n-1)=#last_CPUclock,W=#oCPUClock_Edge,均为字节变量

则W=Qn(Qn@Q(n-1))=Qn(Not(Qn)Q(n-1)+QnNot(Q(n-1))=QnNot(Qn)Q(n-1)+QnQnNot(Q(n-1))=QnNot(Q(n-1)),这里的@表示异或运算

所以W中保存的是各种时钟脉冲的上升沿,也就是2秒的上升沿,1秒的上升沿,0.5秒的上升沿等等

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2012-01-13 10:01:22
3楼
楼上分析对,楼上分析对
SSI ļʱ