본문 바로가기

찐s/Arduino

[Arduino] Lab.2-3: Interrupt

지난 Lab.2-1 Digital I/O 실습에 이어 Arduino 와  DE2-115 보드를 활용하여 External Interrupt 를 실습한다.

 

[GPIO]

 

[exISR.ino]

외부 인터럽트가 발생하면 신호를 발생하는 아두이노 코드는 다음과 같다. 

더보기
/////exISR-----------------------------------/////
int pin = 13; 
volatile int state = LOW; 
/////----------------------------------------/////
void setup() {
  pinMode(pin, OUTPUT); 
  Serial.begin(9600);
  attachInterrupt(0, btInterupt, RISING); 
}
/////----------------------------------------/////
void loop() {
  digitalWrite(LED_BUILTIN, state);
  while (state) { 
    n=0; 
    for (int n=0; n < N; n++) {
      float x = sin(2 * PI * n / N); 
      Serial.println(x*2047);
      delay(125); 
    } 
  }
}
/////----------------------------------------/////
void btInterupt(){
  state = !state;
}

 

[Digital I/O]

UNO interrupt: 0 (D2), 1 (D3)

DUE interrupt: pin number

Interrupt mode: LOW, CHANGE, RISING, FALLING, HIGH

attachInterrupt(digitalPinToInterrupt(pin), ISR, mode Digital Pins With Interrupts
detachInterrupt() Turns off the given interrupt.

 

[Test Result]

회로를 구성하고 이를 테스트 하면 외부 인터럽트에 따라서 신호가 발생함 을 알 수 있다. 

 

 

Arduino 를 활용하여 간단하게 ISR (Interrupt Service Routine) 을 실습한다. 

 

   

 

 

 

[참조]

https://www.arduino.cc/

'찐s > Arduino' 카테고리의 다른 글

[Arduino] Lab.3-1: Analog input  (0) 2020.10.17
[Arduino] Lab.2-2: Digital Input & Output  (0) 2020.08.15
[Arduino] Lab.2-1: Digital Input  (0) 2020.08.09
[Arduino] Lab.1: Serial Monitor  (0) 2020.08.08