사용자 도구

사이트 도구


commands:reference:itimerstate

ItimerState()

ItimerState()는 기본 또는 지정한 콜백 타이머의 실행 상태를 반환합니다.

ItimerState 명령어 동작 흐름

bool ItimerState()
bool ItimerState(uint8_t timerNumber)

명령어

명령어 인수 반환값 동작
ItimerState() 없음 bool 기본 또는 지정한 콜백 타이머의 실행 상태를 반환합니다.

예제

기본 콜백 타이머(Timer2)를 사용합니다. 콜백에서는 플래그만 바꾸고 시리얼 출력은 loop()에서 수행합니다.

void onTimer() {}
 
void setup() {
  Serial.begin(115200);
  if (!ItimerSet(1000, onTimer)) return;  // 콜백과 주기를 먼저 설정해야 합니다.
  ItimerStart();  // 설정한 콜백 타이머를 실행합니다.
}
 
void loop() {
  static unsigned long lastPrint = 0;
  static bool stopped = false;
  if (!stopped && millis() >= 3000) {
    ItimerStop();  // 5초가 지나면 기본 콜백 타이머를 정지합니다.
    stopped = true;
  }
  if (millis() - lastPrint >= 1000) {
    lastPrint = millis();
    const bool running = ItimerState();  // 기본 콜백 타이머가 실행 중인지 확인합니다.
    Serial.println(running ? F("running") : F("stopped"));
  }
}

주의사항

  • 콜백은 인터럽트에서 실행됩니다. 콜백 안에서는 플래그만 바꾸고 delay()·Serial·I2C·SPI를 사용하지 마십시오.
  • 인수를 생략한 콜백 타이머는 Timer2를 사용합니다. 같은 타이머를 쓰는 tone()이나 PWM 출력과 동시에 사용하지 마십시오.
  • 다른 하드웨어 타이머를 지정할 때도 해당 타이머를 사용하는 PWM·아날로그 출력·고속카운터 기능과 중복되는지 확인하십시오.

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

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki