使用PSoC 4中断

问题描述 投票:0回答:1

我正在阅读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,我都可以在主循环中执行。

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

mouse interrupt interrupt-handling psoc
1个回答
0
投票

尝试使用isr_PS2_clock_ClearInterrupt()来清除旗帜

© www.soinside.com 2019 - 2024. All rights reserved.