IMcMem()はMC Protocolで使用するX・Y・M・Dメモリのサイズを設定します。
void IMcMem(uint16_t x_size, uint16_t y_size, uint16_t m_size, uint16_t d_size)
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
IMcMem(x_size, y_size, m_size, d_size) | uint16_t x_size — 入力ビットXの数uint16_t y_size — 出力ビットYの数uint16_t m_size — 内部ビットMの数uint16_t d_size — ワードDの数 | void | MC Protocolで使用するX・Y・M・Dメモリのサイズを設定します。 |
この例では、MPINO-16A8R8TのRS-485ポートSerial2、入力D22、トランジスタ出力D39を使用します。
void setup() { IMcMem(32, 32, 64, 64); // MC Protocolで使用するX・Y・M・Dメモリサイズを設定します。 IMcAdr(0, 0, 0, 0); // X・Y・M・Dメモリの開始アドレスを設定します。 IMcInit(Serial2, 1, 9600); // 通信ポート、局番、ボーレートを設定します。 } void loop() { IMcProtocol(); // 受信要求を確認し、MC Protocol応答を処理します。 if (X != nullptr) X[0] = digitalRead(22) == HIGH; if (Y != nullptr) digitalWrite(39, Y[0] ? HIGH : LOW); }
loop()でIMcProtocol()を継続的に呼び出します。M/Dを再割り当てすると、MC Protocolが参照していたアドレスが変わります。メモリサイズの設定はすべてsetup()で完了し、実行中は再呼び出ししないでください。nullptrでないことを確認してからアクセスします。