zichen8716
我行,我行,我行行行!!!
級別: 家園常客
![]() |
程序如下: M0 ——|↓|————————[ ZRST M10 M20 ] M0 ——| |————————[ CALL P0 ] ————————————————————[ FEND ] P0 M8000 ——| |————————[ SET M11 ] M11 ——| ↑ |————————[ SET M12 ] ————————————————————[ SRET ] ————————————————————[ END] 現在的問題是第一次按M0,M11 M12可以同時被置位,第二次按下是只能M11置位,M12時鐘為低電平。到底是什么問題 子程序P0,修改為 M11 ——| ↑ |————————[ SET M12 ] M8000 ——| |————————[ SET M11 ] M11 M12可以同時被置位,哪位高手給解釋一下到底是怎么回事。 |
|
---|---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
![]() ![]() ![]() ![]() |
第一段: 第一次按下M0時M11/M12被置位,因為執行了P0程序;松開M0時M11/M12被復位,這是沒有問題的,因為主程序在一直運行。 但要注意此時子程序P0沒有被調用,其中的程序不被執行。 第二次按下M0時,再次調用P0程序,首先M11就被置位了,所以程序執行到M12的時候,M11的狀態是從第一次松開M0前的ON狀態切換到了之后按下M0時的ON狀態,中間沒有ON--OFF--ON的變化,也就談不上上升沿之類,所以M12無法被置位。 第二段: 直接把子程序被調用時的程序放到主程序中去分析即可。 |
---|---|
本帖最近評分記錄: |