zichen8716
我行,我行,我行行行!。
級別: 家園?
|
程序如下: M0 ——|↓|————————[ ZRST M10 M20 ] M0 ——| |————————[ CALL P0 ] ————————————————————[ FEND ] P0 M8000 ——| |————————[ SET M11 ] M11 ——| ↑ |————————[ SET M12 ] ————————————————————[ SRET ] ————————————————————[ END] 現(xiàn)在的問題是第一次按M0,M11 M12可以同時被置位,第二次按下是只能M11置位,M12時鐘為低電平。到底是什么問題 子程序P0,修改為 M11 ——| ↑ |————————[ SET M12 ] M8000 ——| |————————[ SET M11 ] M11 M12可以同時被置位,哪位高手給解釋一下到底是怎么回事。 |
|
---|---|---|
|
zichen8716
我行,我行,我行行行。!
級別: 家園常客
|
第二種情況: 程序如下: M0 ——|↓|————————[ ZRST M10 M20 ] M0 ——| |————————[ CALL P0 ] ————————————————————[ FEND ] P0 M8000 ——| |————————[ SET M11 ] M11 ——| |————————[ SET M12 ] |___________[ INCP D0 ] ————————————————————[ SRET ] ————————————————————[ END] 子程序改成這樣,M11 M12都可以被置位,但是D0就加一次數(shù),是什么問題 子程序P0,修改為 M11 ——| ↑ |————————[ SET M12 ] |___________[ INCP D0 ] M8000 ——| |————————[ SET M11 ] 子程序改成這樣。M11 M12可以同時被置位,D0計數(shù)正常,是什么問題 [ 此帖被zichen8716在2011-04-13 13:17重新編輯 ] |
|
---|---|---|
|
小雞已燉
級別: 探索解密
|
應該和掃描周期有關系 我是這樣理解的 M0第1次通的時候CALL執(zhí)行了掃描周期P0,所以M11被置位M11上升沿也置位M12 M0斷開時M11和M12被復位但CALL P0這個掃描周期還在 就好像下面這個程序: M0 ——|↑|————————[ CALL P0 ] —————————————————[ FEND ] P0 M8000 ——| |————————[ Y0 ] ————————————————————[ SRET ] ————————————————————[ END] M0通了Y0會一直接通! 所以你那個程序我覺得你第2次按M0的時候M11會再次置位M11但不會在發(fā)脈沖給SET12! 哎反正就是這些問題!我表達能力就這樣了不知道你知道我在說什么不?O(∩_∩)O哈哈~ 你把后面的子程序調換了就更好理解了!因為掃描時從上掃描下來的! |
---|---|
本帖最近評分記錄: |
sjm213
有小知識,無大學問。
級別: 論壇版主
|
第一段: 第一次按下M0時M11/M12被置位,因為執(zhí)行了P0程序;松開M0時M11/M12被復位,這是沒有問題的,因為主程序在一直運行。 但要注意此時子程序P0沒有被調用,其中的程序不被執(zhí)行。 第二次按下M0時,再次調用P0程序,首先M11就被置位了,所以程序執(zhí)行到M12的時候,M11的狀態(tài)是從第一次松開M0前的ON狀態(tài)切換到了之后按下M0時的ON狀態(tài),中間沒有ON--OFF--ON的變化,也就談不上上升沿之類,所以M12無法被置位。 第二段: 直接把子程序被調用時的程序放到主程序中去分析即可。 |
---|---|
本帖最近評分記錄: |
zichen8716
我行,我行,我行行行!。
級別: 家園?
|
版主你好,我監(jiān)控的時候M11確實從ON-OFF了啊 |
|
---|---|---|
|
zichen8716
我行,我行,我行行行。!
級別: 家園?
|
明白了,謝謝版主指點 |
|
---|---|---|
|
zsh340
zsh340
級別: 論壇先鋒
|
順序問題,CPU本來就是從上至下,從左至右的掃描。 |
|
---|---|---|
|