2012-10-11 3 views
0

제목은 거의 자체 설명입니다. 출력 비교 레지스터 (OC8RS 또는 OC8R)에 쓸 때 외부 인터럽트 INT4 핀의 인터럽트가 트리거됩니다. PWM 용 Timer3 & OC8 모듈을 사용하고 있습니다. INT4 핀은 눌려지면 인터럽트를 트리거하는 물리적 스위치에 연결됩니다. 그러나, 내 PWM 함수에 대한 OC8RS 레지스터를 업데이트하면 인터럽트가 INT4에서 트리거됩니다 ...이 핀은 물리적 스위치에 연결되어 있으므로 PWM과 관련이 없기 때문에 다시는 이해가되지 않습니다.OC8R/RS에 기록하면 INT4가 예기치 않게 트리거됩니다.

나는 뭔가를 초기화, 설정 또는 삭제하지 않을 것이라고 생각하지만 아이디어가 없습니다. 다른 사람이 있습니까? 감사!

저는 최신 MPLAB v8과 C30 및 ICD3과 함께 PIC24HJ256GP610A 프로세서를 사용하고 있습니다.

+0

프로세서의 핀 다이어그램에서 OC8과 INT4는 동일한 핀에 매핑됩니까? 주변 pinselect가없는 rev에서는 기능이 핀에 멀티플렉싱 될 수 있습니다. –

+0

좋은 제안이지만, 이미 확인했습니다. 두 개는 별도의 핀에 있습니다. 내가 찾은 "해결책"을 아래에서보십시오 ... –

답변

0

해결책을 찾았습니다. INT4의 삼중 비트를 입력 (TRISA = 1의 비트 15)으로 설정하는 대신 출력 (TRISAbit15 = 0)으로 설정합니다. 자, 이미 말했듯이, 내가 눌렀을 때 INT4 핀에 펄스를 보내기 위해 기계적인 스위치를 사용하고 있습니다. 즉, MCU 로의 입력 신호입니다. 나는 스위치가 작동하기 위해 10K 풀업 저항에 연결된 INT4 핀을 가지고있다.

그래서 핀/트라이 게이트 비트를 출력으로 설정하면 더 이상 INT4 인터럽트가 트리거되지 않습니다. 신호가 다른 신호와 "싸우는"것처럼 신호가 잡음보다 많이 들립니다. 그러나 이제는 정상적으로 작동합니다. 입력이 수신 될 때 이것이 출력으로 설정된 핀과 함께 작동하는 방법은 여전히 ​​혼란 스럽습니다 ...