사용자 도구

사이트 도구


commands:reference:itimerstart

ItimerStart()

ItimerStart()는 설정한 콜백 타이머를 시작합니다.

ItimerStart 명령어 동작 흐름

bool ItimerStart()
bool ItimerStart(uint8_t timerNumber)

명령어

명령어 인수 반환값 동작
ItimerStart() 없음 bool 설정한 콜백 타이머를 시작합니다.

예제

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

volatile bool tick = false;
 
void onTimer() {
  tick = true;
}
 
void setup() {
  Serial.begin(115200);
  if (!ItimerSet(1000, onTimer)) return;  // 콜백과 주기를 먼저 설정해야 합니다.
  if (!ItimerStart()) return;  // 설정한 기본 콜백 타이머를 시작합니다.
}
 
void loop() {
  if (tick) {
    noInterrupts();
    tick = false;
    interrupts();
    Serial.println(F("tick"));
  }
}

주의사항

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

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

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki