변경시 인터럽트와 PIC의 외부 인터럽트의 차이점은 무엇입니까


11

PIC에서 IOC와 EXT 인터럽트의 기능 차이는 무엇입니까? 현재 PIC12F1822를 사용하고 있으며 IOC와 관련된 추가 검사 계층 (즉, 어떤 핀이 인터럽트를 유발했는지)과는 별도로 두 가지가 동일합니다.

실제 차이점은 무엇입니까? 언제 어느 쪽을 사용하겠습니까?

답변:


8

문서 를 살펴보십시오 .

변경시
인터럽트이 기능은 포트 변경 인터럽트가 활성화 된 모든 핀의 변경 (단 하나의 전환 유형이 아닌)에 의해 트리거된다는 점을 제외 하면 외부 인터럽트 기능 과 유사합니다 . 이로 인해 더 유연 해지지 만 (더 많은 핀에서 사용 가능) 올바르게 처리하기가 더 어려워집니다.


5

이것은 인터럽트 벡터 테이블에 적은 엔트리를 가짐으로써 칩의 인터럽트 아키텍처를 단순화하기 위해 수행 될 수있다. 포트 레지스터가 변경되면 인터럽트 발생시 인터럽트가 발생하도록 설정 될 수 있으며 모든 단일 핀에 대해 ISR (Interrupt Service Routine)을 작성하지 않으려는 키패드 매트릭스와 같은 경우에 유용 할 수 있습니다. 전체 포트의 값을 확인할 수있는 하나만 작성할 수 있으며, 이는 애플리케이션에 따라 실제로 관심이있는 것일 수 있습니다.


5

인터럽트 온 변경과 외부 인터럽트 핀의 세 가지 가장 큰 차이점 :

  1. 외부 인터럽트 핀을 통해 소프트웨어는 인터럽트가 상승 에지에 의해 트리거되어야하는지 아니면 하강 에지에 의해 트리거되어야하는지 지정할 수 있습니다. 예를 들어 핀이 낮고 하강 에지에만 관심이있는 경우 핀이 상승하고 이후에 하강 할 때까지 인터럽트가 트리거되지 않습니다. 변경시 인터럽트를 사용하면 두 이벤트 모두에서 깨워 야합니다.
  2. 외부 인터럽트 핀에는 개별 래칭 상태 비트가 있습니다. 소프트웨어가 입력 펄스에 응답하기 전에 입력 펄스가왔다 갔다해도 소프트웨어는 여전히 발생했음을 발견하고 적절히 반응 할 수 있습니다.
  3. 입력 변경 시점에 핀 변경 인터럽트가 활성화 된 I / O 포트를 읽으면 핀 변경 인터럽트가 트리거되지 않을 수 있습니다. 반대로, 외부 인터럽트 핀에 연결된 I / O 포트를 읽는 것은 인터럽트에 영향을 미치지 않습니다.

PIC의 외부 인터럽트는 범용 핀 변환 인터럽트보다 다재다능하고 신뢰할 수 있습니다. 실용적이라면 전자를 사용하는 것이 좋습니다.


3

기본적으로 외부 인터럽트는 특정 (상승 또는 하강, 사용자 정의) 에지에서 트리거되며 변경시 인터럽트는 모든 에지 (상승 및 하강)에서 트리거됩니다.


적어도 PIC12F1822에 대해 언급 된 OP에 대해 , IOC는 상승 에지, 하강 에지 또는 둘 다에서 트리거하도록 구성 (사용자 정의) 될 수 있습니다 (섹션 13). 나에게 유일한 차이점은 외부 인터럽트는 두 에지 감지 중 하나에서만 트리거하도록 구성 할 수 있다는 것입니다.
PetPaulsen

2

변경시 인터럽트는 일반적으로 1/2 바이트의 I / O에 대한 것이며 외부 인터럽트는 일반적으로 개별 비트에 대한 것입니다. 이미 언급했듯이 IOC ISR에서 수행해야 할 한 가지는 변경된 비트 (또는 비트)를 파악하는 것입니다.

IOC는 또한 그 이상으로 사용하기가 조금 더 어렵습니다. 인터럽트를 활성화하기 전에 곧 포트를 읽어야하며 ISR 내부에서 포트를 읽는 것이 더욱 중요합니다! 신호가 느리게 변경되고 ISR 내부에 플래그를 설정하고 나중에 ISR 외부에서 읽기를 수행 할 수 있다고 생각하면 다시 생각하십시오! 포트 (또는 올바르게 호출하면 포트의 모든 비트)를 읽으면 비교기를 트리거하여 인터럽트를 트리거합니다. ISR 내부에서 지우지 않으면 ISR을 종료 할 때 즉시 다시 트리거됩니다. 이 작업을 기억하면 모든 것이 좋지만, 포트를 돌아 다닐 때 포트를 읽을 수 있다고 생각하면 ISR에서 읽기를 수행 할 때까지 조금 실망하게됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.