bigluo
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 387 個
工控威望: 912 點
下載積分: 2724 分
在線時間: 73(小時)
注冊時間: 2007-12-14
最后登錄: 2021-05-15
查看bigluo的 主題 / 回貼
樓主  發(fā)表于: 2010-04-06 11:14
如附件所示。程序想實現(xiàn)一個看門狗,當3秒鐘的計數(shù)器時間到了后,即調(diào)用子程序P0,在子程序P0里面將C0復(fù)位。
現(xiàn)在的問題是,附件中的程序在監(jiān)視時,發(fā)現(xiàn)子程序是隨時有效的,即C0永遠處于復(fù)位狀態(tài),這是為什么?把子程序的內(nèi)容放到主程序里面的話,一切正常。
請指教。。。

bigluo
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 387 個
工控威望: 912 點
下載積分: 2724 分
在線時間: 73(小時)
注冊時間: 2007-12-14
最后登錄: 2021-05-15
查看bigluo的 主題 / 回貼
1樓  發(fā)表于: 2010-04-06 11:24
用這個就沒有問題:

bigluo
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 387 個
工控威望: 912 點
下載積分: 2724 分
在線時間: 73(小時)
注冊時間: 2007-12-14
最后登錄: 2021-05-15
查看bigluo的 主題 / 回貼
2樓  發(fā)表于: 2010-04-07 16:49
引用
引用第2樓wsir123于2010-04-07 15:46發(fā)表的  :
樓主的這個情況就像你叫一個人去10公里外游泳,結(jié)果,那人在河里玩的不回來了,你卻還讓他再去游泳,能行么?一定要讓他回來,然后,再讓他去。。。
不知這個比喻合適不?

謝謝了!照你的方法已經(jīng)改好了。
不過,我還是不明白為什么不能在子程序里面復(fù)位?
bigluo
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 387 個
工控威望: 912 點
下載積分: 2724 分
在線時間: 73(小時)
注冊時間: 2007-12-14
最后登錄: 2021-05-15
查看bigluo的 主題 / 回貼
3樓  發(fā)表于: 2010-04-07 17:43
引用
引用第4樓wsir123于2010-04-07 17:35發(fā)表的  :

測試里那個m0其實就是一個在子程序里溜達了一圈的一個標志,這個標志要在主程序里call前對c0 操作一下。
你可以把主程序里那個m0復(fù)位的和call對調(diào)一下,那個c0就一直是處于復(fù)位狀態(tài)。
所以,子程序結(jié)尾要m0標志一下(溜達了一圈的一個標志),主程序call前要根據(jù)這個標志復(fù)位一下就可以了。

謝謝指點。
在我的程序里面,在C0被置位的掃描周期,應(yīng)該就會進入子程序,然后,在子程序里對C0復(fù)位,這樣,下一個掃描周期時,C0就被復(fù)位了,應(yīng)該就不能再進入子程序了,這樣不對嗎?