使用PSoC 4进行中断

时间:2016-12-06 17:13:19

标签: mouse interrupt interrupt-handling psoc

我正在阅读PS / 2鼠标的值,这是完美的! - 我只想从鼠标中读取,当鼠标发送时钟信号(下降沿)时,我正在尝试使用中断。到目前为止,这是我的一些代码:

  

中断处理程序:

extern struct mouse mouseData;
CY_ISR(PS2_interrupt) { 

    ISR_getMouseData(&mouseData);

}

这个中断给了我以下结果,这是完美的: enter image description here

我正在向右移动鼠标,它正在输出正确的东西,但我不能在主循环中做任何事情。例如,如果我在主循环中的显示器上打印一些东西,没有任何事情发生,但只要鼠标正在发送,它仍然可以从鼠标中读取数据..

我发现你应该使用这个功能清除中断:

isr_PS2_clock_ClearPending()

当我在中断处理程序中写这个函数时,我会得到这个: enter image description here

这是之前的相同动作,但正如您所看到的,数据已损坏。但是,无论何时调用intterrupt,我都可以在主循环中执行。

在处理中断方面我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试使用isr_PS2_clock_ClearInterrupt()清除标记