Itmr()은 입력이 ON인 시간을 누적하고 reset 입력으로 누적 시간을 초기화합니다.
bool Itmr(uint8_t timer_id, bool state, unsigned long delayTime, bool reset = false)
| 명령어 | 인수 | 반환값 | 동작 |
|---|---|---|---|
Itmr(timer_id, state, delayTime, reset) | uint8_t timer_id — 타이머 번호. 0 ~ 255 범위에서 사용 가능bool state — 타이머 입력 상태unsigned long delayTime — 설정 시간. 단위는 msbool reset = false — Itmr 적산값 초기화 | bool | 입력이 ON인 시간을 누적하고 reset 입력으로 누적 시간을 초기화합니다. |
MPINO-8A4R(T)-S 보드를 선택한 예제입니다. P0 입력과 P32 출력을 사용합니다. loop()를 막지 않고 매번 명령어를 호출합니다. P0이 ON인 시간을 합산해 3초가 되면 P32를 켭니다. P0이 OFF여도 누적시간은 유지되며 P1이 ON이면 초기화합니다.
const uint8_t RUN_INPUT = 0; const uint8_t RESET_INPUT = 1; const uint8_t OUTPUT_PIN = 32; void setup() {} void loop() { const bool run = digitalRead(RUN_INPUT) == HIGH; const bool reset = digitalRead(RESET_INPUT) == HIGH; const bool elapsed = Itmr(0, run, 3000, reset); // 입력이 ON인 시간만 누적하고 reset이 true이면 초기화합니다. digitalWrite(OUTPUT_PIN, elapsed ? HIGH : LOW); }
loop()에서 반복 호출해야 시간이 경과하고 입력 OFF도 반영됩니다.timer_id를 다른 타이머 동작과 공유하면 상태가 섞입니다. 동작마다 다른 번호를 사용하십시오.reset이 true이면 누적시간과 완료 상태가 초기화됩니다.