Robofun 機器人論壇
標題:
[求救]如何使用basic stamp寫中斷副程式
[打印本頁]
作者:
log4518
時間:
2010-8-31 17:38
標題:
[求救]如何使用basic stamp寫中斷副程式
如題所示
所使用的IC為BS2px
想學如何寫中斷副程式
例如:車子一直在接收更新GPS資料的同時,
可以往前走或左轉或右轉
懇請高手解答,感謝!
作者:
g921002
時間:
2010-9-1 15:18
Stamp沒有中斷
作者:
log4518
時間:
2010-9-1 16:51
如果沒有中斷的話
那我所描述的例子可否使用其他方式取代?
作者:
playrobot
時間:
2010-9-4 09:11
stamp本身有中斷, 你可以參考 run , pullin, 等指令。 可以"隨時"等待某個腳位被觸發, 然後執行RUN某個事件。 範例程式相當簡單。
其次, 或者, 你可以使用兩個BS2, 一個處理GPS資料接收, 將車子移動資料送到車子上的BS2, 去控制車子方向。
作者:
log4518
時間:
2010-9-5 00:47
您好
可否示範簡單的例子
譬如 螢幕一直在顯示
A VAR WORD
A=A+1
DEBUG DEC A
而噪音器一直在鳴叫
FREQOUT 8, 2000, 1500
如何讓兩件事情同時運作?
作者:
g921002
時間:
2010-9-5 12:51
本帖最後由 g921002 於 2010-9-5 12:53 編輯
1.「同時」是不可能的。因為核心只有一個。
2.另外Stamp是沒有中斷的,即便上面的uC有中斷可用。Stamp的運作方式是在uC燒入Basic指令執行器。透過讀取IIC EEPROM執行編譯好的Stamp指令碼。<--這是公開資料,原廠網站可查。詳情見BASIC Stamp Syntax and Reference Manual
3.因為你用的是2p系列,上面有所謂的poll interrupt系列指令使用。<--很抱歉,這跟uC的ISR一點關係也沒有。這種實作的方式跟message passing很像。pollrun透過該類機制切換不同Task運作。想要執行另一Task抱歉先排隊等到當前Task做完。跟uC的ISR直接從主迴圈跳入ISR是兩馬子事情。pollout送出訊息也是要在主迴圈輪詢才能做。不然丟出來只是丟辛酸的。
4.由於FREQOUT的運作不是靠硬體,是軟體,執行時就是佔住資源。跟是不是中斷一點關係也沒有。你可以讓變數相加的執行時間很短。讓每次FREQOUT執行間隔短到人的耳朵聽不出來有間斷即可。
作者:
log4518
時間:
2010-9-5 20:20
感謝您細心的回答!!
所以Basic Stamp真的要執行多工的話,只有使用兩塊BS這個辦法嗎?
您說FREQOUT運作是靠硬體,是軟體,那請問有哪些程式指令的運作是靠硬體而不是軟體呢?
( PULSOUT是嗎?)
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2