TIME RELATED CLASS

이고은·2021년 5월 5일
0

Ticker

일정 시간 간격으로 반복하여 interrupt 발생

Ticker led2_ticker;
led2_ticker.attach(&timeout_cb,0.5);
//0.5초마다 timeout_cb()실행
led2_ticekr.detach()

Timeout

일정 시간 후에 한번만 interrupt 발생시키는 목적으로 사용

TimeOut led2_timeout;
led2_timeout.attach(&tout_cb, 1.0);
//1초 후 tout_cb()실행

Timer

경과 시간을 측정할 목적으로 사용될 수 있음

Timer timer;
timer.start();
timer.stop();
timer.reset();

//경과 시간을 읽을 때의 문법은 다음과 같이 변경 되었다.
auto f = chrono::duration<float>(t.elapsed_time()).count();
auto s = chrono::duration_cast<chrono::seconds>(t.elapsed_time()).count();
auto ms = chrono::duration_cast<chrono::milliseconds>(t.elapsed_time()).count();
auto us = t.elapsed_time().count();

LowPowerTicker, LowPowerTimeout, LowPowerTimer도 있다. 동일한 method를 가지고 있으나 deep sleep mode에서 동작하고 resolution이 더 적다. millisecond accuracy정도면 충분하다면 사용 가능.

ISR 내에서는 wait()이나 오래 걸리는 함수의 실행시키면 안 된다. printf, malloc, new와 같은..

profile
MLOps Engineer가 되고싶은 ML과 DevOps에 관심이 많은 컴공생입니다👩🏻‍💻

0개의 댓글