欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于單片機程序啟停控制問題 [打印本頁]

作者: Evan_wang    時間: 2020-3-25 17:25
標題: 關于單片機程序啟停控制問題

現在功能:每個程序給一個信號,相關程序就會執行.
問題: 各部件都是獨立運行(例如,我后面的程序還沒執行完,只要控制電機的點有信號,電機還是會轉,各部件之間無關聯性)
希望達到效果: 電機給信號后,后面各程序依次執行,且在執行完整個程序前,前面的程序即使給信號與只會等待不會執行.
例如(我程序還在執行第三步,我給一個信號給START 電機還是不會轉,直到后面的執行完電機才會轉動然后接著執行后面的程序)
請大神指點要如何修改. 感激


作者: wang_hu_hi    時間: 2020-3-25 19:34
這種不考慮成本的話還是PLC方便,國產PLC100多些
作者: yzwzfyz    時間: 2020-3-26 12:27
再寫一個GL程序,管理你的N個功能程序。
1、程序以GL運行為主,即只在GL中循環運行。
2、每個GL循環里依序執行(調取)你的N個功能程序。
3、每個功能程序只請允許運行0.1秒或更短(越短越好。這就考驗你的邏輯能力了,估計你無法做到),如果某個功能某個動作執行超過0.1秒,就拆開某個動作(如何拆是關鍵)。再下一輪繼續完成。
如此就OK了。0.1秒只是個象征性的界限,實際會更短。因為0.1秒對于單片機來說,可運行數萬條指令了。

作者: game灬boy    時間: 2020-3-26 13:59
定義三個標志位如int a,b,c;初值為1,0,0。當a=1;時執行第一步執行完第一步后將a置0并且將b置1;當b=1時執行第二步執行完第二步后將b置0并且將c置1;當c=1時執行第二步執行完第二步后將c置0并且將a置1;這樣就會按照第一第二第三步執行了
例如:
int a=1;
int b=0;
int c=0;
if(a==1&&START==0)
{
P0=0x00;
a=0;
b=1;
}
if(b==1&&START==0)
{
P0=0x01;
b=0;
c=1;
}
if(c==1&&START==0)
{
P0=0x02;
c=0;
a=1;
}
這段代碼在給相同信號START=0時;會因為abc的值執行不同程序
作者: Evan_wang    時間: 2020-3-29 11:22
game灬boy 發表于 2020-3-26 13:59
定義三個標志位如int a,b,c;初值為1,0,0。當a=1;時執行第一步執行完第一步后將a置0并且將b置1;當b=1 ...

謝謝你詳細回答




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1