여러 프로젝트에 PIC16F877
( datasheet )를 사용 했습니다. 단일 외부 핀 변경 인터럽트의 경우 PORTB0
인터럽트 를 사용할 수 있습니다 . 그러나 이제 단일 회로에서 8 개의 독립적 인 외부 핀 변경 인터럽트를 지원해야합니다.
데이터 시트에는에 15 개의 인터럽트가 있다고 말하지만 PIC16F877
타이머 오버플로 인터럽트 등을 포함하여 계산됩니다.이 경우에는 쓸모가 없습니다.
이것이 바로 INTCON
레지스터 에 대한 데이터 시트 입니다.
bit0을 사용하여 4 개의 독립적 인 인터럽트를 가질 수 있습니까 RBIF
? 의 변화를 나타냅니다 PB7:PB4
. 인터럽트 루틴에서 포트 값을 읽어 어떤 핀이 변경되었는지 식별하려면 어떻게해야합니까?
위의 긍정적 인 답변을 얻었더라도 8 개의 인터럽트가 필요합니까? 물론 변경을 INTE
위해 여전히을 사용할 수 PORTB0
있습니다. 그렇다면 4 + 1 = 5
다른 3은 어떻습니까? (그러나 8 개의 인터럽트 이벤트가 모두 같은 유형 인 4 + 1 + 3 = 8
것은 추한 것 같지 않습니까?)
8 핀을 모니터링하는 다른 마이크로 컨트롤러에서 예상되는 다른 무거운 작업은 없습니다. (다른 작업에 대해 말하면 별도의 카운터 변수 세트를 유지 관리하고 PC에 직렬로 약 4 바이트를 자주 전송해야합니다)
어떤 제안이라도 환영합니다. 더 적합한 것을 위해 마이크로 컨트롤러를 변경하는 것에 관한 것이더라도 (그러나 .... PIC
s 에서 멀어 지라고 말하지 마십시오 ).