정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

인터럽트(Interrupt)함수 사용방법 질문드립니다!
kkh | 2019-03-18

1. 프로젝트 사용한 보드 종류

  (EX : 오렌지보드, 오렌지 BLE보드, 아두이노 UNO 등)

 아두이노 DUE

 

2. 사용한 개발 프로그램명

  (EX : 아두이노 IDE, 스크래치, mBlock 등)

 아두이노 IDE

 

3. 사용한 센서 모델명

  (센서 모델명을 자세하게 적어 주실 경우 더 정확하게 확인할 수 있습니다.)

4. 연결한 회로 설명 (또는 이미지)

5. 소스코드 (주석 필수)

  (원하는 기능의 코드를 전부 작성해 드리긴 어렵습니다. 기초부터 차근차근 공부해보면서 코드를 만들어 보세요.)

 

6. 문제점 및 에러 내용

  (소스코드 문제일 경우 에러 내용도 같이 올려주세요.)

https://www.kocoafab.cc/tutorial/view/634

여기 내용을 통해 attachinterrupt함수에 대해 이해했는데요.

"인터럽트가 발생됐다면 loop()안의 코드 실행이 중단되고 인터럽트로 지정된 함수가 실행되게됩니다."

 

제가 여기서 궁금한게, loop()함수 내에 attachinterrupt함수를 사용할 수 있나요?

예를 들자면 loop()내에 if문을 이용해서 특정 상황에서만 attachinterrupt함수가 실행되도록 하고싶을 때는

loop문 내에서도 사용이 가능할까요?

 

답변주시면 감사하겠습니다. :)

프로필사진

kocoafab 2019-03-20 12:04:39

안녕하세요. 우선 인터럽트 명령어자체는 loop문 안에 넣어도 상관 없을 것 같습니다.

 

그대신 intterupt를 필요할때만 쓰실거면 조건이 만족하지 않을때는 detachInterrupt 로 인터럽트를 해제하시면서 쓰셔야 할 것 같습니다.

(* detachInterrupt(인터럽트번호) )

 

직접 테스트는 해본 결과는 아니오니 한번 직접 테스트 해보시고 결과를 알려주시면 감사하겠습니다.

이전글   |    코코아 점수관련 문의 2019-03-18
다음글   |    GY-521 MPU-6050센서 관련 글에서 질문이 있어서 글을 남깁니다.... 2019-03-19