ItimerSet()는 주기와 콜백 함수 또는 사용할 하드웨어 타이머를 설정합니다.
bool ItimerSet(unsigned long intervalMs, void (*callback)())
bool ItimerSet(uint8_t timerNumber, unsigned long intervalMs, void (*callback)())
| 명령어 | 인수 | 반환값 | 동작 |
|---|---|---|---|
ItimerSet(intervalMs, callback) | unsigned long intervalMs — 콜백 실행 주기. 단위는 ms. 0은 사용할 수 없음void (*callback)() — 주기마다 실행할 void 함수명() 형태의 함수 | bool | 주기와 콜백 함수 또는 사용할 하드웨어 타이머를 설정합니다. |
기본 콜백 타이머(Timer2)를 사용합니다. 콜백에서는 플래그만 바꾸고 시리얼 출력은 loop()에서 수행합니다.
volatile bool tick = false; void onTimer() { tick = true; } void setup() { Serial.begin(115200); if (!ItimerSet(1000, onTimer)) return; // 기본 하드웨어 타이머의 콜백과 1초 주기를 설정합니다. ItimerStart(); // 설정한 콜백 타이머를 실행합니다. } void loop() { if (tick) { noInterrupts(); tick = false; interrupts(); Serial.println(F("tick")); } }
delay()·Serial·I2C·SPI를 사용하지 마십시오.tone()이나 PWM 출력과 동시에 사용하지 마십시오.