我目前正在读取PS/2鼠标的值,它工作得很好!--当鼠标发送时钟信号(下降的边缘)时,我只想从鼠标中读取,所以我尝试使用一个中断。到目前为止,这是我的一些代码:
中断处理程序:
extern struct mouse mouseData;
CY_ISR(PS2_interrupt) {
ISR_getMouseData(&mouseData);
}这个插曲给了我一个很好的结果:

我把鼠标移到右边,它输出了正确的东西,但是我不能在主for循环中做任何事情。例如,如果我在主循环中的显示上打印了什么,什么都不会发生,但只要鼠标发送,它仍然可以从鼠标读取数据。
我发现您应该使用以下函数清除中断:
isr_PS2_clock_ClearPending()当我在中断处理程序中编写这个函数时,我会得到以下内容:

这是相同的移动在以前,但正如你可以看到,我破坏的数据。不过,我可以在主循环中执行一些事情,只要不调用intter间歇期。
我在处理中断方面做错了什么?
发布于 2017-07-30 18:27:13
尝试使用isr_PS2_clock_ClearInterrupt()清除旗帜
https://stackoverflow.com/questions/41001104
复制相似问题