?? ps2.txt
字號:
-------------------------------------------------------------------------------
本文件用于記錄編寫PS2鍵盤程序中出現的問題
--------------------------------------------------------------------------------
1.在*.H文件中放置數組,可能會在連接時提示數組名重定義
我昨天將PS2鍵盤的程序運用到了我的仿真板上,我起初以為只需要
改寫少量的程序代碼就可以的,結果是不知到是什么原因我幾乎是
把全部代碼都重寫了一遍。程序運行好象沒錯,我設置了斷點,也
看到了讀近來的數據,比較后也是正確的,就是不能在LCD上顯示出來
我起初是以為由于例程只讀了通碼沒有讀斷碼導致的。我想當我讀完
通碼,然后再開外部中斷1時正好趕上鍵盤發送的斷碼,這時也許并不
斷碼的開頭,可能會是他的中間部分,由于沒有按照即定方式,所以
程序就死在里面的循環中了。
但后來的驗證說明我的猜測也許不對,我設置斷點卻得到了鍵值,但運
行到查表程序時卻又陷入了死循環,由于跟蹤的限制我沒能查到具體是
哪一個語句出的問題,但從中說明我上面的猜測可能有問題。
為了證明我的想法我將程序全部改寫了一遍,將每次只檢查一個位的
中斷程序改成了,一次讀取3個字節,這樣就不會有前面猜想的那樣的
后果了。(***********************我要說明的是這樣做會占用太多
的CPU時間,使程序的實時性明顯下降***************************)
但這次的結果更讓我摸不到頭腦,因為我只要在中斷程序中加查表程序
從中斷程序中讀出來的按鍵值就完全變樣了,但只要去掉那一條語句一
切都有會恢復正常。
這個現象使我開始懷疑我用SST芯片做的仿真器,剛開始測試別人的程序
時由于程序段中有關中斷的語句,使仿真不能執行,而這次的情況也有點
類似。后來的測試使我更加堅信這一點,我利用靜態變量來傳遞所取得的
鍵值,然后在主程序中進行顯示,結果是在中斷中設置斷點后單步執行跳
主程序后就不能在仿真了。
我想我也許該用WAVE來仿真一下。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -