主題:鍵盤中斷例程 共有38180人關注過本帖 |
---|
yaqun_zhao |
1樓 |
鍵盤中斷例程 Post By:2006-12-30 12:35:00 [只看該作者]
既然鍵盤中斷例程也是用的定時中斷,那我能否不用keyisr例程,直接在定時中斷ISR中假如if(kbhit()) char c=getchar();語句來判斷是否有按鍵和按的什么鍵,系統支持嗎?
|
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2006-12-30 13:50:00 [只看該作者]
不能在ISR中調用系統的函數!否則會造成函數重入而crush。
key的ISR的部分需要完全保留,對應用定時只需要cnt++或發一個消息即可,如果使用了事件驅動機制的話。 |
|
單帖管理 | 引用 | 回復 |
yaqun_zhao |
3樓 |
Post By:2006-12-30 19:32:00 [只看該作者]
也就是說我只需在keyISR程序中加個 IRQ12cnt++;在主程序中判斷 IRQ12cnt值和i = GetKeyCode( )即可使用定時中斷和鍵盤中斷了,對嗎?
|
|
單帖管理 | 引用 | 回復 |
x10 |
4樓 |
Post By:2006-12-30 20:30:00 [只看該作者]
是的,你現在用的鍵盤讀取程序是i=GetKeyCode()嗎,我記得應當可以直接調用PC標準函數,如getch(), kbhit()等。
|
|
單帖管理 | 引用 | 回復 |
yaqun_zhao |
5樓 |
Post By:2006-12-30 20:56:00 [只看該作者]
對了,開始還這樣想過的,后來暈乎了,那我只需定時中斷就可以了,在主程序中判斷IRQ12cnt和定時判斷kbhit()和getchar()就可以了,對嗎?非常感謝!
|
|
單帖管理 | 引用 | 回復 |