사용자 도구

사이트 도구


commands:reference:filo

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
commands:reference:filo [2026/09/14 11:04] – 바깥 편집 127.0.0.1commands:reference:filo [2026/09/14 20:30] (현재) – 바깥 편집 127.0.0.1
줄 14: 줄 14:
  
 ===== 예제 ===== ===== 예제 =====
 +
 +시리얼 모니터에서 ''a''를 보내면 번호를 저장하고, ''p''를 보내면 가장 나중에 저장한 번호를 꺼냅니다. ''c''는 버퍼를 비웁니다. 각 문자를 한 번씩 전송해 동작을 확인할 수 있습니다.
  
 <code cpp> <code cpp>
-uint16_t fifoValue = 0; +uint16_t nextNumber = 0; 
-uint16_t filoValue = 0; +uint16_t lastNumber = 0;
-uint16_t sequence = 0;+
  
 void setup() { void setup() {
줄 25: 줄 26:
  
 void loop() { void loop() {
-  const bool store = Iup(0, IdigitalRead(0, 5));  // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. / 입력이 OFF에서 ON으로 바뀌는 순간에만 true를 반환합니다+  if (!Serial.available()) return; 
-  const bool release Iup(1, IdigitalRead(1, 5));  // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. / 입력이 OFF에서 ON으로 바뀌는 순간에만 true를 반환합니다. +  const char action = Serial.read(); 
-  const bool reset IdigitalRead(2, 5);  // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다.+  const bool store action == 'a'; 
 +  const bool retrieve = action == 'p'; 
 +  const bool clearBuffer action == 'c'; 
 +  if (store++nextNumber;
  
-  if (store) ++sequence; +  const bool ok FILO(0, store, retrievenextNumberlastNumber, 16, clearBuffer);  // 번호를 버퍼에 저장하고, 꺼내기 신호가 오면 마지막 번호를 읽습니다. 
-  const bool fifoOk FIFO(0, store, releasesequencefifoValue, 16, reset);  // 저장한 순서대로 16비트 데이터를 꺼냅니다. +  FILO(0, falsefalsenextNumberlastNumber, 16, false);  // 다음 문자도 상승 신호로 처리할 수 있도록 입력 신호를 LOW로 되돌립니다. 
-  const bool filoOk = FILO(0, storereleasesequencefiloValue, 16, reset);  // 나중에 저장한 16비트 데이터를 먼저 출력합니다. +  if (retrieve && ok) Serial.println(lastNumber); 
-  if (release && fifoOk && filoOk+  if (retrieve && !ok) Serial.println(F("Buffer empty"));
-    Serial.print(F("oldest=")); Serial.print(fifoValue)+
-    Serial.print(F(", newest=")); Serial.println(filoValue); +
-  }+
 } }
 </code> </code>
commands/reference/filo.txt · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki