사용자 도구

사이트 도구


commands:reference:filo

차이

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

차이 보기로 링크

다음 판
이전 판
commands:reference:filo [2026/09/01 20:04] – 만듦 - 바깥 편집 127.0.0.1commands:reference:filo [2026/09/14 20:30] (현재) – 바깥 편집 127.0.0.1
줄 11: 줄 11:
 ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^
 | ''FILO(filo_id, IN, OUT, input, output, size, reset)'' | ''uint8_t filo_id''\\ ''bool IN'' — 상승 엣지에서 입력 저장\\ ''bool OUT'' — 상승 엣지에서 출력\\ ''uint16_t input'' — 저장할 워드\\ ''uint16_t &output'' — 출력값을 받을 참조 변수\\ ''uint8_t size'' — 버퍼 크기\\ ''bool reset = false'' — 버퍼 초기화 | ''bool'' | 나중에 저장한 16비트 데이터를 먼저 출력합니다. | | ''FILO(filo_id, IN, OUT, input, output, size, reset)'' | ''uint8_t filo_id''\\ ''bool IN'' — 상승 엣지에서 입력 저장\\ ''bool OUT'' — 상승 엣지에서 출력\\ ''uint16_t input'' — 저장할 워드\\ ''uint16_t &output'' — 출력값을 받을 참조 변수\\ ''uint8_t size'' — 버퍼 크기\\ ''bool reset = false'' — 버퍼 초기화 | ''bool'' | 나중에 저장한 16비트 데이터를 먼저 출력합니다. |
 +
  
 ===== 예제 ===== ===== 예제 =====
 +
 +시리얼 모니터에서 ''a''를 보내면 번호를 저장하고, ''p''를 보내면 가장 나중에 저장한 번호를 꺼냅니다. ''c''는 버퍼를 비웁니다. 각 문자를 한 번씩 전송해 동작을 확인할 수 있습니다.
  
 <code cpp> <code cpp>
-uint16_t filoOut+uint16_t nextNumber = 0
-FILO(0, digitalRead(0)digitalRead(1), D[0]filoOut10);+uint16_t lastNumber = 0; 
 + 
 +void setup() { 
 +  Serial.begin(115200); 
 +
 + 
 +void loop() { 
 +  if (!Serial.available()) return; 
 +  const char action = Serial.read(); 
 +  const bool store = action == 'a'; 
 +  const bool retrieve = action == 'p'; 
 +  const bool clearBuffer = action == 'c'; 
 +  if (store) ++nextNumber; 
 + 
 +  const bool ok = FILO(0, storeretrieve, nextNumber, lastNumber, 16, clearBuffer);  // 번호를 버퍼에 저장하고꺼내기 신호가 오면 마지막 번호를 읽습니다. 
 +  FILO(0, falsefalse, nextNumber, lastNumber, 16, false);  // 다음 문자도 상승 신호로 처리할 수 있도록 입력 신호를 LOW로 되돌립니다. 
 +  if (retrieve && ok) Serial.println(lastNumber); 
 +  if (retrieve && !ok) Serial.println(F("Buffer empty")); 
 +}
 </code> </code>
  
줄 22: 줄 43:
  
 ''IN'', ''OUT'', ''CU'', ''CD''는 상승 순간에 동작합니다. 각 카운터·버퍼에 고유한 ''id''를 사용하고 ''size''는 필요한 범위로 작게 설정하십시오. ''IN'', ''OUT'', ''CU'', ''CD''는 상승 순간에 동작합니다. 각 카운터·버퍼에 고유한 ''id''를 사용하고 ''size''는 필요한 범위로 작게 설정하십시오.
 +
 +===== 같은 카테고리의 내장 명령어 =====
 +
 +  * [[commands:reference:fifo|FIFO() 상세 설명 보기]]
  
 [[commands:builtin|← 내장 명령어 리스트]] [[commands:builtin|← 내장 명령어 리스트]]
  
commands/reference/filo.1788260661.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki