사용자 도구

사이트 도구


commands:reference:itimerset

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
commands:reference:itimerset [2026/09/01 20:04] – 만듦 - 바깥 편집 127.0.0.1commands:reference:itimerset [2026/09/12 22:54] (현재) – 바깥 편집 127.0.0.1
줄 12: 줄 12:
 ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^
 | ''ItimerSet(intervalMs, callback)'' | ''unsigned long intervalMs'' — 콜백 실행 주기. 단위는 ms. ''0''은 사용할 수 없음\\ ''void (*callback)()'' — 주기마다 실행할 ''void 함수명()'' 형태의 함수 | ''bool'' | 주기와 콜백 함수 또는 사용할 하드웨어 타이머를 설정합니다. | | ''ItimerSet(intervalMs, callback)'' | ''unsigned long intervalMs'' — 콜백 실행 주기. 단위는 ms. ''0''은 사용할 수 없음\\ ''void (*callback)()'' — 주기마다 실행할 ''void 함수명()'' 형태의 함수 | ''bool'' | 주기와 콜백 함수 또는 사용할 하드웨어 타이머를 설정합니다. |
 +
  
 ===== 예제 ===== ===== 예제 =====
 +
 +기본 콜백 타이머(Timer2)를 사용합니다. 콜백에서는 플래그만 바꾸고 시리얼 출력은 ''loop()''에서 수행합니다.
  
 <code cpp> <code cpp>
-volatile bool fastTick = false;+volatile bool tick = false;
  
-void onFastTimer() { +void onTimer() { 
-  fastTick = true;+  tick = true;
 } }
  
 void setup() { void setup() {
-  ItimerSet(3100, onFastTimer); +  Serial.begin(115200); 
-  ItimerStart(3);+  if (!ItimerSet(1000onTimer)) return // 기본 하드웨어 타이머의 콜백과 1초 주기를 설정합니다. 
 +  ItimerStart();  // 설정한 콜백 타이머를 실행합니다.
 } }
  
 void loop() { void loop() {
-  if (fastTick) { +  if (tick) { 
-    fastTick = false;+    noInterrupts(); 
 +    tick = false
 +    interrupts(); 
 +    Serial.println(F("tick"));
   }   }
 } }
줄 36: 줄 43:
 ===== 주의사항 ===== ===== 주의사항 =====
  
-콜백은 인터럽트에서 실행됩니다. 콜백 안에서는 플래그만 바꾸고 ''delay()''Serial, I²C, SPI와 긴 계산은 사용하지 마십시오. PWM과 같은 타이머를 공유하는지도 확인하십시오.+  * 콜백은 인터럽트에서 실행됩니다. 콜백 안에서는 플래그만 바꾸고 ''delay()''·''Serial''·I2C·SPI를 사용하지 마십시오. 
 +  * 인수를 생략한 콜백 타이머는 Timer2를 사용합니다. 같은 타이머를 는 ''tone()''이나 PWM 출력과 동시에 사용하지 마십시오. 
 +  * 다른 하드웨어 타이머를 정할 때도 해당 타이머를 사용하는 PWM·아날로그 출력·고속카운터 기능과 중복되는지 확인하십시오. 
 +  * 주기가 0이거나 콜백이 없으면 설정에 실패하고 false를 반환합니다. 
 + 
 +===== 같은 카테고리의 내장 명령어 ===== 
 + 
 +  * [[commands:reference:itimerstart|ItimerStart() 상세 설명 보기]] 
 +  * [[commands:reference:itimerstop|ItimerStop() 상세 설명 보기]] 
 +  * [[commands:reference:itimerstopall|ItimerStopAll() 상세 설명 보기]] 
 +  * [[commands:reference:itimerstate|ItimerState() 상세 설명 보기]]
  
 [[commands:builtin|← 내장 명령어 리스트]] [[commands:builtin|← 내장 명령어 리스트]]
  
commands/reference/itimerset.1788260660.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki