utils.h

utils.h をインクルードすることで利用できるマクロを紹介します。

S_OCTET(x)

1バイトをメモリを書き込む。

uint8 *q = &sTx.au8Data[0];

S_OCTET(0x12); 
S_BE_WORD(0x1234); 
S_BE_DWORD(0x12345678);

uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q++ が実行される。

S_BE_WORD(x)

2バイトをメモリを書き込む。

uint8 *q = &sTx.au8Data[0];

S_OCTET(0x12); 
S_BE_WORD(0x1234); 
S_BE_DWORD(0x12345678);

uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q+=2 が実行される。

BE はビッグエンディアン、LE はリトルエンディアン。

S_BE_DWORD(x)

4バイトをメモリを書き込む。

uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q+=4 が実行される。

BE はビッグエンディアン、LE はリトルエンディアン。

G_OCTET()

1バイトメモリを読み込み uint8 型の変数に値を格納する。

uint8 *p をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。=演算子の評価後 p++ が実行される。

G_BE_WORD()

2バイトメモリを読み込み uint16 型の変数に値を格納する。

uint8 *p をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。=演算子の評価後 p+=2 が実行される。

BE はビッグエンディアン、LE はリトルエンディアン。

G_BE_DWORD()

1バイトメモリを読み込み uint8 型の変数に値を格納する。

uint8 *p をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。=演算子の評価後 p+=4 が実行される。

BE はビッグエンディアン、LE はリトルエンディアン。

ENCODE_VOLT(x)

2000~3600 の値を 8bit 値に変換します。

  • 1.95~2.80V は 5mV 刻み

  • 2.81~3.65V は 10mV 刻み

2000~2800 の値は 5 刻み、2800~は10 刻みで 8bit 値に割り当てます。

DECODE_VOLT(x)

ENCODE_VOLT() により得られた8bit値を元の値に戻します。

  • 1.95~2.80V は 5mV 刻み

  • 2.81~3.65V は 10mV 刻み

2000~2800 の値は 5 刻み、2800~は10 刻みで 8bit 値に割り当てます。

vPortAsInput(c)

ポートcを入力に設定する

vPortAsOutput(c)

ポートcを出力に設定する

​vPortSetHi(c)

ポートcをHi状態にする

​​vPortSetLo(c)

ポートcをLo状態にする

​​​vPortSet_TrueAsLo(c, s)

ポート c を s が TRUE なら Lo, FALSE なら Hi に設定する

bPortRead(c)

ポート c を読み出す。Loレベルなら TRUE が返る

​u32PortReadBitmap()

ポート c を読み出す。Loレベルなら TRUE が返る。

​bPortCheckBitmap(bitmap, c)

読みだしたビットマップのポート c に対応するビットがLoレベルならTRUEを返す。

vPortDisablePullup(c)

ポート c のプルアップを停止する。

_C

switch でスコープを定義したい場合 _C { … } と記述している。

LB

改行コード (CRLF) 文字列です。

最終更新