commands:reference:itmr
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| commands:reference:itmr [2026/09/08 00:53] – 바깥 편집 127.0.0.1 | commands:reference:itmr [2026/09/14 20:30] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Itmr() ====== | ====== Itmr() ====== | ||
| - | '' | + | '' |
| {{: | {{: | ||
| 줄 10: | 줄 10: | ||
| ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ||
| - | | '' | + | | '' |
| ===== 예제 ===== | ===== 예제 ===== | ||
| + | |||
| + | MPINO-8A4R(T)-S 보드를 선택한 예제입니다. '' | ||
| <code cpp> | <code cpp> | ||
| - | const uint8_t | + | const uint8_t |
| const uint8_t RESET_INPUT = 1; | const uint8_t RESET_INPUT = 1; | ||
| - | const uint8_t | + | const uint8_t |
| - | void setup() { | + | void setup() {} |
| - | Serial.begin(115200); | + | |
| - | } | + | |
| void loop() { | void loop() { | ||
| - | const bool start = IdigitalRead(START_INPUT, | + | const bool run = digitalRead(RUN_INPUT) == HIGH; |
| - | const bool reset = IdigitalRead(RESET_INPUT, 5); // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. | + | const bool reset = digitalRead(RESET_INPUT) == HIGH; |
| - | const bool ready = Iton(0, start, 1000); | + | const bool elapsed |
| - | const bool stopDelay | + | digitalWrite(OUTPUT_PIN, elapsed |
| - | const bool startPulse | + | |
| - | const bool inspectionWindow = Itmon(3, startPulse, 3000); // (Monostable Timer) 동작 중 재입력되어도 시간이 연장되지 않는 펄스를 출력합니다. | + | |
| - | const bool batchDone = Itmr(4, ready, 10000, reset); | + | |
| - | const unsigned long elapsed = IgetTime(4); | + | |
| - | const bool savedDone = IgetState(4); | + | |
| - | + | ||
| - | digitalWrite(RUN_OUTPUT, stopDelay && !batchDone | + | |
| - | if (inspectionWindow && elapsed % 1000 < 20) { | + | |
| - | Serial.println(savedDone ? F(" | + | |
| - | } | + | |
| } | } | ||
| </ | </ | ||
| 줄 44: | 줄 34: | ||
| ===== 주의사항 ===== | ===== 주의사항 ===== | ||
| - | * 타임 인터럽트 콜백은 ISR 안에서 실행된다. 콜백 안에서는 플래그만 바꾸고 실제 제어 처리는 '' | + | * 타이머 명령어는 '' |
| - | * 콜백 안에서 '' | + | * 같은 '' |
| - | * Modbus RTU는 기본적으로 '' | + | * '' |
| - | * Timer2를 쓰는 '' | + | |
| - | * Timer1, Timer3, Timer4, Timer5를 명시적으로 사용하면 해당 타이머를 쓰는 PWM, 아날로그 출력, 고속카운터 기능과 충돌할 수 있다. | + | |
| - | * 같은 | + | |
| - | * 스케치에서 같은 | + | |
| - | * '' | + | |
| ===== 같은 카테고리의 내장 명령어 ===== | ===== 같은 카테고리의 내장 명령어 ===== | ||
commands/reference/itmr.1788796403.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1
