👩🏻‍🎓

아두이노 인터럽트 함수

장이하 2026. 1. 5. 16:12
noInterrupts()

 

아두이노에서 모든 인터럽트(interrupt)의 발생을 일시적으로 비활성화하는 함수

 

interrupts()

 

인터럽트를 다시 활성화함

 

attachInterrupt(핀, 함수, 모드)

 

외부 인터럽트 발생에 사용하는 핀, 호출해야 하는 함수(인터럽트 서비스 루틴, ISR(Interrupt service routine)과 인터럽트 발생에 사용하는 모드를 지정한다.

attachInterrupt() 함수는 setup() 함수 내에 사용해야 하며, 인터럽트 서비스 루틴으로 사용하는 함수는 인자가 없고 반환 값이 없다

 

1. 핀 - 아두이노 아날로그핀에 맞춰서 핀 번호를 작성하여야함.

실제 디지털 핀을 작성하고 싶으면 `digitalPinToInterrupt`을 이용하여야함.

 

2. 함수- 인터럽트가 발생할 경우 실행할 함수 이름(ISR)

일반적으로 ISR은 가능한 한 짧고 빨리 끝나야함

 

millis()카운트를 위해 인터럽트에 의존하므로 ISR 내에서 절대 증가하지 않습니다. 
delay()작동하려면 인터럽트가 필요 하기 때문에 ISR 내에서 호출되면 작동하지 않습니다. 
micros()처음에는 작동하지만 1-2ms 후에 비정상적으로 작동하기 시작합니다. 
delayMicroseconds()카운터를 사용하지 않으므로 정상적으로 작동합니다.

 

3. 모드

LOW :  핀이 LOW일 될 때마다 
CHANGE : 핀의 값이 변경 될 때마다 
RISING : 핀이 LOW에서 HIGH로 갈 때 
FALLING : 핀이 HIGH에서 LOW로 갈 때 

 

참고

https://m.blog.naver.com/jamduino/220936433866

https://m.blog.naver.com/dreammaker777/222169160814

https://wikidocs.net/278699

 

 

 

'👩🏻‍🎓' 카테고리의 다른 글

PCB 레이어 구조  (0) 2026.01.23
SPI vs QSPI  (1) 2026.01.12
크로스 컴파일  (2) 2025.12.24
시나공 기출 2024 2회  (3) 2025.11.05
수파 모고 4회  (0) 2025.11.04