본문 바로가기

아두이노

(3)
아두이노 : 자료형 앞에 volatile을 붙이는 이유 오늘은 volatile에 대해 이야기하고 간단한 테스트를 하려고 해요. volatile을 왜 사용하는지 그 이유와 사용법에 이야기 할 텐데, 어렵지 않게 최대한 간단하고 쉽게 설명해보도록 할께요! 😎 게다가 이 부분에 대해서 자세히 설명하려니 우선 저부터가 머리 복잡해지고 심란하네요 ㅎ (제가 가진 내공이 심히 부족하답니다 😆) Interrupt나 외부 장치에 의해서 변수의 값이 바뀌게 되면 이를 인식하지 못하는 경우가 생겨요. 그래서 이를 방지하기 위해 변수를 선언할 때 앞에 volatile을 붙여주게 되면 이 변수 값을 읽을 때마다 항상 메모리(RAM)에 접근해서 읽어온답니다. '그렇다면 메모리 말고 다른 곳에서 변수를 읽어오는 건가?' 라는 생각이 들지는 않으셨나요? (여기까지 생각을 해내었다면 여..
아두이노 : External Interrupt 이번 글에서는 지난번 설명했던 인터럽트를 아두이노에서 어떻게 구현하는지 보여드리도록 할게요. 아두이노 레퍼런스에 나와있는 External Interrupt를 바탕으로 구현해보겠습니다. 우선 인터럽트를 어떻게 구현할 것이냐면요. 1) LED_GREEN(초록색 LED은 1초 간격으로 깜빡인다. 2) 스위치 버튼을 누르는 동안 LED_RED(빨간색 LED)가 켜진다. 이렇게 2 가지 LED가 깜빡이도록 프로그램을 짜는데 초록색 LED는 loop() 함수 안에서 구현을 하고 빨간색 LED는 External Interrupt로 구현할 거예요. 이렇게 구현하기 위해서 우선 어떤 아두이노의 핀을 사용할지 정해야 해요. 정리해보자면 우리가 사용해야 할 핀은 총 3가지가 됩니다. 1. LED_GREEN과 연결할 핀 - ..
아두이노 : 인터럽트란? 인터럽트란 참 유용한 기능이라고 생각해요. 하지만 인터럽트를 어떻게 쓰는 건지, ISR은 뭔지 등등, 인터럽트를 사용하는게 쉽지만은 않더라고요.🤨 그래서 인터럽트를 보다 쉽게 이해하고 사용할 수 있도록 준비해봤습니다. 그럼 이제 인터럽트 대해 알아볼텐데요. 우선 다음과 같은 상황을 맞닥뜨리면 여러분은 어떻게 할지 생각해봅시다! 1) 게임을 신나게 하는데 갑자기 전화가 올 때 2) 주어진 업무를 처리하는데 상사가 급한 일이라면서 다른 업무를 줄 때 3) 저녁 반찬으로 고기를 볶는데 끓이고 있던 냄비에서 찌개가 넘칠 때 뭐 사람마다 상황마다 선택은 다르겠지만 게임을 하던 중 중요한 전화가 걸려온다면? → 게임을 잠시 멈추고 통화를 한 뒤 다시 게임을 하고 주어진 업무를 처리하다가도 급한 업무가 생기면? → ..