본문 바로가기
아두이노

슈퍼루프 - millis

by 깅민 2026. 3. 4.

지난 번까지 슈퍼루프에 대한 예제를 공부하고 있었다.

그 예제의 단점은 작업이 2개 이상이 되면

일정한 주기에 맞춰 반복을 돌리기 어렵다는 점이다.

 

millis

millis라는 함수가 그 문제를 해결한다.

millis는 아두이노가 구동된 이후의 시간을 밀리 초 단위로 리턴하는 함수다.

 

 

 

blink와 fading을 동시에 실행했지만 각각 동작한다.

 

 

millis 함수 동작 원리

타이머를 직접 만들어보면 이해가 좀 된다고 한다.

 

아두이노에서 TimerOne 라이브러리를 추가한다.

 

 

타이머 예제를 만들었다.

 

 

초당 5번 깜빡인다.

이런 인터럽트 처리 함수를 사용하면, 함수간에 공유영역 문제가 생긴다고 한다.

 

이때는 noInterrupts() 나 interrupts() 함수를 사용해서 조절한다.

 

millis 함수 구현

 

초당 1000씩 증가함.

 

millis는 미리 작성된 타이머 0 인터럽트 처리 함수에 의해

카운터 변수가 초당 1000씩 증가, 이 변수값을 리턴한다. 고 한다.

 

간단하게 작성해봤지만 어렵다.


참고로 모든 예제들은,

앤써북 [아두이노로 만드는 사물인터넷] 

 

이라는 도서를 참고하고 있다.

아두이노는

하드웨어적이 부분과 소프트웨어가 섞여있어서 아직 어려운 점이 있는 것 같다.

'아두이노' 카테고리의 다른 글

슈퍼루프 - millis 프로젝트  (0) 2026.03.11
슈퍼루프 예제  (0) 2026.02.25