熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-3-25 17:25
正文摘要:現(xiàn)在功能:每個(gè)程序給一個(gè)信號(hào),相關(guān)程序就會(huì)執(zhí)行. 問題: 各部件都是獨(dú)立運(yùn)行(例如,我后面的程序還沒執(zhí)行完,只要控制電機(jī)的點(diǎn)有信號(hào),電機(jī)還是會(huì)轉(zhuǎn),各部件之間無關(guān)聯(lián)性) 希望達(dá)到效果: 電機(jī)給信號(hào)后,后面各 ... |
game灬boy 發(fā)表于 2020-3-26 13:59 謝謝你詳細(xì)回答 |
|
定義三個(gè)標(biāo)志位如int a,b,c;初值為1,0,0。當(dāng)a=1;時(shí)執(zhí)行第一步執(zhí)行完第一步后將a置0并且將b置1;當(dāng)b=1時(shí)執(zhí)行第二步執(zhí)行完第二步后將b置0并且將c置1;當(dāng)c=1時(shí)執(zhí)行第二步執(zhí)行完第二步后將c置0并且將a置1;這樣就會(huì)按照第一第二第三步執(zhí)行了 例如: 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; } 這段代碼在給相同信號(hào)START=0時(shí);會(huì)因?yàn)閍bc的值執(zhí)行不同程序 |
| 參與人數(shù) 1 | 黑幣 +50 | 收起 理由 |
|---|---|---|
|
| + 50 | 回帖助人的獎(jiǎng)勵(lì)! |
|
再寫一個(gè)GL程序,管理你的N個(gè)功能程序。 1、程序以GL運(yùn)行為主,即只在GL中循環(huán)運(yùn)行。 2、每個(gè)GL循環(huán)里依序執(zhí)行(調(diào)取)你的N個(gè)功能程序。 3、每個(gè)功能程序只請(qǐng)?jiān)试S運(yùn)行0.1秒或更短(越短越好。這就考驗(yàn)?zāi)愕倪壿嬆芰α耍烙?jì)你無法做到),如果某個(gè)功能某個(gè)動(dòng)作執(zhí)行超過0.1秒,就拆開某個(gè)動(dòng)作(如何拆是關(guān)鍵)。再下一輪繼續(xù)完成。 如此就OK了。0.1秒只是個(gè)象征性的界限,實(shí)際會(huì)更短。因?yàn)?.1秒對(duì)于單片機(jī)來說,可運(yùn)行數(shù)萬條指令了。 |
| 參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
|---|---|---|
|
| + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
| 這種不考慮成本的話還是PLC方便,國產(chǎn)PLC100多些 |
Powered by 單片機(jī)教程網(wǎng)