我目前正在从 PS/2 鼠标读取值,它运行良好!- 当鼠标发送时钟信号(下降沿)时,我试图只从鼠标读取,所以我试图使用中断。到目前为止,这是我的一些代码:
中断处理程序:
extern struct mouse mouseData;
CY_ISR(PS2_interrupt) {
ISR_getMouseData(&mouseData);
}
我将鼠标向右移动,它输出了正确的东西,但是我不能在主 for 循环中做任何事情。例如,如果我在主循环中的显示器上打印一些东西,什么都不会发生,但它仍然可以从鼠标读取数据,只要鼠标发送..
我发现你应该使用这个函数清除中断:
isr_PS2_clock_ClearPending()
这与之前的动作相同,但如您所见,数据已损坏。但是,只要不调用中断,我就可以在主循环中执行操作。
在处理中断方面我做错了什么?