commands:reference:fifo
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| commands:reference:fifo [2026/09/08 00:53] – 바깥 편집 127.0.0.1 | commands:reference:fifo [2026/09/14 11:04] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== FIFO() ====== | ====== FIFO() ====== | ||
| - | '' | + | '' |
| {{: | {{: | ||
| 줄 10: | 줄 10: | ||
| ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ||
| - | | '' | + | | '' |
| ===== 예제 ===== | ===== 예제 ===== | ||
| + | |||
| + | 시리얼 모니터에 '' | ||
| <code cpp> | <code cpp> | ||
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint16_t sequence | + | |
| void setup() { | void setup() { | ||
| Serial.begin(115200); | Serial.begin(115200); | ||
| + | Serial.println(F(" | ||
| } | } | ||
| void loop() { | void loop() { | ||
| - | | + | |
| - | const bool release | + | const char key = Serial.read(); |
| - | const bool reset = IdigitalRead(2, 5); // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. | + | const bool store = key == ' |
| + | const bool take = key == ' | ||
| + | const bool reset = key == ' | ||
| + | if (!store && !take && !reset) return; | ||
| - | | + | const bool ok = FIFO(0, store, |
| - | | + | |
| - | | + | |
| - | if (release && fifoOk && filoOk) { | + | if (reset) { |
| - | Serial.print(F("oldest=")); Serial.print(fifoValue); | + | nextValue = 10; |
| - | Serial.print(F(" | + | Serial.println(F("buffer cleared")); |
| + | } else if (!ok) { | ||
| + | | ||
| + | } else if (store) { | ||
| + | Serial.print(F(" | ||
| + | Serial.println(nextValue); | ||
| + | nextValue += 10; | ||
| + | } else { | ||
| + | Serial.print(F(" | ||
| + | | ||
| } | } | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | 버퍼가 가득 찬 상태의 저장 또는 빈 버퍼의 꺼내기는 실패합니다. | ||
| ===== 주의사항 ===== | ===== 주의사항 ===== | ||
commands/reference/fifo.1788796396.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1
