인터럽트
인터럽트 -loop()문이 반복적으로 동작 되고 있는 도중, 일시 중단하고 다른일을 처리하는 기능 -아두이노에서 사용가능한 인터럽트 타이머 인터럽ㅌ, 욉 인터럽트, 시리얼통신 인터럽트 등 혹은 라이브러리 추가시 스케치->라이브러리 포함하기->라이브러리 관리 에서 다운로드 MsTimer2 library 인터럽트 설정 MsTimer2::set(unsigned long ms, void(*f)()) ms: 인터럽트 시간, 밀리초 void(*f)() : 인터럽트 분기 함수명 인터럽트 시작 MsTimer2::start() 인터럽트 정지 MsTimer2::stop() 예제 #include<MsTimer2.h> /*외부 라이브러리를 불러온다*/ int swState = LOW; int ledState = LOW; int ledFlag = HIGH; void setup(){ pinMode(7,INPUT_PULLUP); pinMode(12,OUTPUT); MsTimer2::set(500,flash); /*500msec 주기로 flash 함수로 갔다온다*/ MsTimer2::start(); } void flash(){ /*인터럽트 분기함수*/ if(ledState ==HIGH){ digitalWrite(12,ledFlag); ledFlag = !ledFlag; }else if(ledState ==LOW){ digitalWrite(12,LOW); } } void loop(){ if(digitalRead(7) == LOW && swState == LOW){ ...