2016-12-06 9 views
0

현재 PS/2 마우스에서 값을 읽고 있습니다. 완벽하게 작동합니다! 마우스가 클럭 신호 (하강 에지)를 보낼 때만 마우스에서 읽으려고하기 때문에 인터럽트를 사용하려고합니다. 이것은 내 코드의 일부까지입니다 :PSoC 4를 사용하여 인터럽트

인터럽트 핸들러 : enter image description here

나는 이동 해요 :이 인터럽트가 나에게 완벽한입니다 follwing을 결과를주고있다

extern struct mouse mouseData; 
CY_ISR(PS2_interrupt) { 

    ISR_getMouseData(&mouseData); 

} 

마우스 오른쪽으로, 그리고 그것은 옳은 일을 출력, 나는 메인 루프에 대한 아무것도 할 수 없다. 예를 들어 메인 루프의 디스플레이에서 뭔가를 인쇄해도 문제는 발생하지 않지만 마우스가 전송 될 때마다 마우스의 데이터를 읽을 수 있습니다.

이 함수를 사용하여 인터럽트를 지우는 것이 확인되었습니다 :

isr_PS2_clock_ClearPending() 

나는이를 얻을 수 있습니다 인터럽트 핸들러에서이 기능을 쓸 때 : enter image description here

이 이전에 같은 움직임이지만, 당신이 볼 수 있듯이, 데이터가 내가 손상을. 그러나 intterrupt가 호출되지 않을 때마다 주 루프에서 작업을 실행할 수 있습니다.

인터럽트 처리 측면에서 내가 뭘 잘못하고 있니?

답변

0

봅니다 전에 그럼 내가 가지고있는 깃발

+0

을 취소 같은 문제를 isr_PS2_clock_ClearInterrupt()를 사용하고 그 날 위해 일했습니다 –