사용자 도구

사이트 도구


commands:reference:itmr

문서의 이전 판입니다!


Itmr()

Itmr()은 입력이 ON인 시간을 누적하고 reset 입력으로 누적 시간을 초기화합니다.

Itmr 명령어 동작 흐름

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 — 설정 시간. 단위는 ms
bool reset = falseItmr 적산값 초기화
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() {
  pinMode(RUN_INPUT, INPUT);
  pinMode(RESET_INPUT, INPUT);
  pinMode(OUTPUT_PIN, OUTPUT);
}
 
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이면 누적시간과 완료 상태가 초기화됩니다.

같은 카테고리의 내장 명령어

commands/reference/itmr.1789351497.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki