其實我的想法是這屬於在計時迴圈做等待流程
現在是狀態1或3,"等"到條件成立後進入狀態2或0,那個"等"是等外部機械運作完成,所以每次迴圈去讀取外部機械運作狀態旗標
另外是狀態0或2,等XX秒後就進入狀態1或3,那個"等"是屬於計時,這時我的做法是經歷(XX秒*100)次(我的計時器是每10ms啟動一次),用個全域變數每次迴圈+1直到大於(XX秒*100)次,這樣次數經過後就等於經過xx秒(雖然不精準,但是沒差啦)
然後機器就在0->1->2->3->0 狀態無限迴圈,機器就做1休1做1休1這樣,大概就這樣的概念
引用:
|
作者計時迴圈
if (aa==3) //第1件事
{
讀取機器旗標
if ( 機器做動完成)
aa=0;
}
//----------------------------------
else if (aa==2) //第2件事
{
bb++;
if ( bb>某上限)
{
命令機器動;
aa=3;
bb=0;
}
}
//----------------------------------
else if (aa==1) //第3件事
{
讀取機器旗標
if ( 機器做動完成)
aa=2;
}
//----------------------------------
else if (aa==0) //第4件事
{
bb++;
if ( bb > 某上限)
{
命令機器動
aa=1;
bb=0;
}
}
|