지난 번까지 슈퍼루프에 대한 예제를 공부하고 있었다.
그 예제의 단점은 작업이 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 |