W7100A에서 External Interrupt 사용방법 문의


#1

W7100A에 대한 소스를 코딩하고 있는중인데요
소스상에서 nINT0 PIN에 대한 인터럽트 발생하는 루틴에 대한 예제가 있었으면 합니다.
또한 해당 nINT0의 현재 신호 상태(High, Low인지)를 알 수 있으려면 어떻게 해야하는지요?
레지스터를 어떻게 세팅해주어야 하는지?
인터럽트는 Low active로 동작해야합니다.


#2

안녕하세요.

External interrupt 예제코드를 올려 드릴게요.

KEIL 프로젝트 입니다.

W7100A_AN_EXT_interrupt.zip (88.8 KB)


#3

인터럽트를 소스처럼하면 될 듯한데요

nINT0 포트의 Low, High상태를 알려면 어떻게 해야하는지요?


#4

안녕하세요.

nINT0 은 신호가 0으로 입력되면 자동으로 interrupt service routine call이 일어납니다.

그래도 입력신호가 low인지 high인지 알고 싶으시다면, 따로 핀을 연결하여 확인하는 방법이 있습니다.

그리고 low인지 high인지를 왜 알고 싶으신지 좀더 구체적으로 설명해주시면 도움이 될 것 같네요.


#5

nINT0 pin을 인터럽트로 쓸때도 있고 인터럽트가 아닌 포트스캔을 할 때도 있어서 그렇습니다.


#6

nINT0을 원하는 임의의 포트(Px_N)로 연결을 한후 해당 포트 핀을 읽으면 됩니다.
표준 8051 포트와 같은 구조로 동작하므로 8051 포트 제어를 참조하시면 됩니다.

예로, nINT0을 P3_0으로 연결한 하고 nINT0값을 읽는 경우

char temp;
P3_0 = 1;       // Port Read 설정을 위해 먼저 1을 Write한다.
temp = P3_0; // Port3의 0번을 읽어 temp에 저장
if(temp & 0x01) 
  printf("nINT0 is High\n");
else              
  printf("nINT0 is Low\n");