commands:reference:fifo
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
| commands:reference:fifo [2026/09/01 20:04] – 만듦 - 바깥 편집 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 |
| - | FIFO(0, | + | uint16_t removedValue = 0; |
| + | |||
| + | void setup() { | ||
| + | Serial.begin(115200); | ||
| + | Serial.println(F(" | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | if (!Serial.available()) return; | ||
| + | const char key = Serial.read(); | ||
| + | const bool store = key == ' | ||
| + | const bool take = key == ' | ||
| + | const bool reset = key == ' | ||
| + | if (!store && !take && !reset) return; | ||
| + | |||
| + | const bool ok = FIFO(0, | ||
| + | FIFO(0, false, false, 0, removedValue, 4); // 다음 시리얼 입력에서도 상승 순간을 인식하도록 IN·OUT을 OFF로 돌립니다. | ||
| + | |||
| + | if (reset) { | ||
| + | nextValue = 10; | ||
| + | Serial.println(F(" | ||
| + | } else if (!ok) { | ||
| + | Serial.println(F(" | ||
| + | } else if (store) { | ||
| + | Serial.print(F(" | ||
| + | Serial.println(nextValue); | ||
| + | nextValue += 10; | ||
| + | } else { | ||
| + | Serial.print(F(" | ||
| + | Serial.println(removedValue); | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| + | |||
| + | 버퍼가 가득 찬 상태의 저장 또는 빈 버퍼의 꺼내기는 실패합니다. | ||
| ===== 주의사항 ===== | ===== 주의사항 ===== | ||
| '' | '' | ||
| + | |||
| + | ===== 같은 카테고리의 내장 명령어 ===== | ||
| + | |||
| + | * [[commands: | ||
| [[commands: | [[commands: | ||
commands/reference/fifo.1788260661.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1
