回复:蹭热度:循环程序的本质

已锁定

莘莘学子

  • 帖子

    6968
  • 精华

    4
  • 被关注

    176

论坛等级:至圣

注册时间:2010-04-22

钻石 钻石 如何晋级?

发布于 2022-07-02 09:25:30

14楼

展开查看
以下是引用李岩在2022-07-01 13:49:19的发言 >13楼

本胖对循环的理解:OB1(主程序)当然是循环;定时中断也是循环;用定时器实现的循环同样是循环。

说个单片机的例子:

本胖当年(9x年)曾经搞过单片机,当时也只能用汇编,但大的思路却跟C的while差不多,就是主程序实际上就是一个大循环,PLC的OB1应该也是同样的思路。C

但同样还有定时中断在运行,比如:看门狗(现在流行的心跳,其实就是看门狗)。这种定时中断是硬件级别的,同样是循环。

那么,这两种循环有啥本质区别吗?软件上看就是优先级不同;硬件上看,其实还是优先级不同,高优先级的定时器(硬件,跟PLC的定时中断类似)中断,即使在CPU已经死机的情况下,仍然会产生中断。

SO,本胖曾经做过一个比较极端的程序架构:干脆不要主程序了,全部程序都放入100ms的定时中断里面。结果就是连抗干扰很垃圾的AT89C52都很抗干扰了!

上面说的不管具体是啥,本质上都是循环,只是实现的方法不同而已。

循环有两个方面,一个是死循环,程序在里面跳不出来,比如while,相当PLC的OB1;另一个是活循环,运行条件执行完就会跳出循环,比如for,相当于定时器T。至于定时中断,是属于另一个范畴,执行不执行完中断内容,也会跳出再进入。整体循环模式给人的感觉就是3种循环模式。至于单片机尽可能避免用while,否则会造成CPU死机,卡住不动,所以就有看门狗的介入。就本质而已,PLC的芯片和单片机芯片就是一家的。

弘扬中华传统美德,无私奉献为根本,助人为乐为根源。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9379条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。