사용자 도구

사이트 도구


commands:reference:icnetinit

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
commands:reference:icnetinit [2026/09/08 00:53] – 바깥 편집 127.0.0.1commands:reference:icnetinit [2026/10/25 11:33] (현재) – 바깥 편집 127.0.0.1
줄 14: 줄 14:
  
 ===== 예제 ===== ===== 예제 =====
 +
 +이 예제는 MPINO-16A8R8T의 RS-485 포트 ''Serial2'', 입력 ''D22'', 트랜지스터 출력 ''D39''를 사용합니다.
  
 <code cpp> <code cpp>
줄 25: 줄 27:
 void loop() { void loop() {
   ICnet();  // 수신 요청을 확인하고 Cnet Slave 응답을 처리합니다.   ICnet();  // 수신 요청을 확인하고 Cnet Slave 응답을 처리합니다.
-  if (M != nullptr) M[0] = IdigitalRead(0, 5);  // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. +  if (M != nullptr) M[0] = digitalRead(22) == HIGH; 
-  if (D != nullptr) digitalWrite(32, D[0] ? HIGH : LOW);+  if (D != nullptr) digitalWrite(39, D[0] ? HIGH : LOW);
 } }
 </code> </code>
줄 32: 줄 34:
 ===== 주의사항 ===== ===== 주의사항 =====
  
-  * ''ICnet()''을 ''loop()''에서 계속 호출합니다. +  * ''ICnet()''을 ''loop()''에서 계속 호출해야 합니다. 
-  * M/D/R 크기는 SRAM 범위 안에서 설정합니다. +  * M/D/R 크기는 SRAM 범위 안에서 설정해야 합니다. 
-  * Modbus와 메모리를 공유할 때 중복 할당과 주소 기준을 확인합니다. ''ICnetMem()''과 ''ImodbusRTUMem()''은 둘 다 공유 ''M''/''D''를 재할당하므로 둘 중 하나만 최종 크기 정책의 소유자로 정하고, 마지막 재할당 뒤에 두 프로토콜을 초기화합니다. +  * Modbus와 메모리를 공유할 때는 중복 할당과 주소 기준을 확인해주시기 바랍니다. ''ICnetMem()''과 ''ImodbusRTUMem()''은 둘 다 공유 ''M''/''D''를 재할당하므로 둘 중 하나만 최종 크기 정책의 소유자로 정하고, 마지막 재할당 뒤에 두 프로토콜을 초기화해야 합니다. 
-  * 할당 함수는 성공 여부를 반환하지 않으므로 ''M'', ''D'', ''R''이 ''nullptr''인지 확인한 뒤 사용자 코드에서 접근합니다.+  * 할당 함수는 성공 여부를 반환하지 않으므로 사용자 코드에서 접근하기 전에 ''M'', ''D'', ''R''이 ''nullptr''이 아닌지 확인해야 합니다.
  
 ===== 같은 카테고리의 내장 명령어 ===== ===== 같은 카테고리의 내장 명령어 =====
commands/reference/icnetinit.1788796398.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki