init_Mask()
説明
CAN IDのシールド。86Duinoにおいては, 32 組のCAN IDシールドが存在し,外部設備によるCANデータより,シールドは取得可能なCAN ID 範囲を判断する(0 ~ N 區間);この関数は init_Filt()と組み合わされ, CAN IDをA ~ B区間に制限する。もしsketch においてinit_Mask() 或いはinit_Filt()が無い場合は,CAN 関数は會自動的にCAN ID のデータを取得する。
語法
CAN.init_Mask(num, ext, ulData)
戻り値
num
:シールドの番号,値の範囲: 0 ~ 31
ext
:データ送信の形式,以下の 4 種がある:
- CAN_STDID:標準データ画像, CAN 2.0A 規範に符合する,ID 範囲:0 ~ 0x7FF
- CAN_EXTID:資料データを展開する, CAN 2.0B の規範を使用し,ID範囲:0 ~ 0x1FFFFFFF
- CAN_STDID_REMOTE:3. CAN_STDID_REMOTE: 標準遠端画像, CAN 2.0A の規範に符合し,ID範囲:0 ~ 0x7FF
- CAN_EXTID_REMOTE:4. CAN_EXTID_REMOTE: 遠端画像を展開, CAN 2.0B 規範に符合し,ID範囲:0 ~ 0x1FFFFFFF
ulData
:シールド值。以下を確認されたい
濾過機設定がされていない:
0 0 0 0 0 0 0 0 濾過機値: 0x00
0 0 0 0 0 0 1 1 シールド值: 0x03
CAN ID の取得期間を:0x00 ~ 0x03 とする
濾過機の設定:
0 0 0 1 1 0 0 1 濾過機值: 0x19
0 0 0 0 0 0 0 1 シールド值: 0x01
CAN IDの取得期間を:0x18、0x19 とする
0 1 0 1 1 1 0 0 濾過機值 :0x5C
0 0 0 0 0 1 1 1 シールド值: 0x07
CAN ID の取得区間を:0x58 ~ 0x5F とする
ポストバック
CAN_FAIL:設定失敗
CAN_OK:設定成功
Examples
#include <CANBus.h> unsigned char buf[8] = {0, 1, 2, 3, 4, 5, 6, 7}; void setup() { Serial.begin(115200); CAN.begin(CAN_500KBPS); // CAN の送信速度を500KBPSに設定する CAN.init_Filt(0, CAN_STDID, 0x019); // 第 0 濾過器を設定し,値を 0x019とし,標準データ画像を使用する CAN.init_Mask(0, CAN_STDID, 0x01); // 第 0 シールドを設定し,値を 0x01とし,標準データ画像を使用する } void loop() { CAN.beginTransmission(0x00, CAN_STDID); // 外部 CAN device の ID を 0x00とし,標準データ画像を使用する CAN.write(buf, 8); // 8 bytes データ送信 CAN.endTransmission(); // 送信完了 delay(10); }
See also
- init_Filt()
- beginTransmission()
- write()
- endTransmission()
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.