Inflearn brand logo image

인프런 커뮤니티 질문&답변

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

전동킥보드로 배우는 임베디드 실전 프로젝트

인터럽트 실습 - 스위치 입력 받아서 LED On/Off 해보기

스위치 인터럽트 동작이해.

해결된 질문

작성

·

31

·

수정됨

1

안녕하세요.

초보적인 질문 일 수가 있는데.. 동작이 잘 이해가 되지 않아서 질문 드립니다.

 

스위치 동작 Falling Edge에서만 인터럽트가 발생되는 코드로 버튼을 누르면 하드웨어 적으로 LOW되고 Falling 인터럽트가 발생되서 LED가 off 되는건 이해가 됩니다만, 버튼을 안누르면 하드웨어 적으로 High가 되지만 인터럽트는 발생이 안되서 LED의 상태는 유지 되어야 하는거 아닌가요?

즉, 지금의 동작은 누르면 LED OFF, 때면 LED ON 동작인데.

동작이 Falling에서만 인터럽트가 발생되서, 누를때만 ON됐다가 다시 누르면OFF 됐다가하는 동작이 되어야 하는게 아닌가 궁금합니다.

답변 1

0

제어쟁이님의 프로필 이미지
제어쟁이
지식공유자

음.. 현재 LED를 On/Off하는 코드는 스위치 입력이 들어올 때마다 On/Off가 반복되도록 실습 코드가 작성되어있습니다. 현재 스위치 입력 GPIO랑 LED에 연결된 GPIO는 다른 핀입니다.

질문해주신 "버튼을 안누르면 하드웨어 적으로 High가 되지만 인터럽트는 발생이 안되서 LED의 상태는 유지 되어야 하는거 아닌가요?" 이 부분이 잘 이해가 가질 않는데, 버튼을 안누르면 스위치 Input Pin이 High인거고 LED에 연결된 GPIO는 다른 핀입니다.!

추가 질문 해주시면 답변 드리겠습니다.

dhanbi1님의 프로필 이미지
dhanbi1
질문자

키트를 통해서 실습을 하고있는데. 현재 스위치 인터럽트파트에서 동작.

스위치는 누르면 LED가 OFF, 누르고있던 스위치를 때면 LED가 ON됩니다.

 

코드상 인터럽트는 Falling edge 즉, LOW떨어질때(스위치 눌림)만 발생하여,

스위치를 누르면 LED가 OFF되고 누르고있던 스위치를 때도 LED가 OFF상태로 유지되어야 하고, 다시 스위치를 누르면 LED가 ON되고 이런 방식이 되어야 하는게 아닌가 해서요.

누르고있던 스위치를 때도(High) 왜 인터럽트 루틴을 들어가는지 이해가 잘 안됩니다.

제어쟁이님의 프로필 이미지
제어쟁이
지식공유자

코드를 현재 업로드 되어 있는 실습 코드 사용하고 계신거죠??

방금 테스트 해봤는데 스위치를 누르고 땔때 인터럽트로 들어가진 않습니다.

누를때마다 On/Off가 반복됩니다. 여러번 테스트해도 말씀하신 동작은 나오지 않는데 혹시 간헐적으로 그런 현상이 일어나는 걸까요?

제어쟁이님의 프로필 이미지
제어쟁이
지식공유자

image.png

위의 코드로 실습하고 계시나요?

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

질문하기