2016-12-06 21 views
0

我目前正在讀取PS/2鼠標的數值,該鼠標完美工作! - 當鼠標發送一個時鐘信號(下降沿)時,我只想從鼠標讀取數據,所以我試圖使用中斷。這是我的一些代碼至今:使用PSoC 4中斷

中斷處理程序:

extern struct mouse mouseData; 
CY_ISR(PS2_interrupt) { 

    ISR_getMouseData(&mouseData); 

} 

此中斷給我follwing結果,這是完美的: enter image description here

我感動鼠標右側,它輸出正確的東西,但我不能在主循環中做任何事情。如果我例如在主循環的顯示器上打印什麼東西,什麼都沒有發生,但它仍然可以從鼠標讀取數據,只要鼠標正在發送。

我發現你應該使用這個函數清除中斷:

isr_PS2_clock_ClearPending() 

當我寫在中斷處理程序這個功能,我會得到這樣的: enter image description here

這是在之前同樣的動作,但你可以看到,我的數據損壞。然而,只要intterrupt沒有被調用,我就可以在主循環中執行。

我在處理中斷方面做錯了什麼?

回答

0

嘗試使用isr_PS2_clock_ClearInterrupt()來清除國旗

+0

那麼我以前也有同樣的問題,併爲我工作 –