utils.h
utils.h をインクルードすることで利用できるマクロを紹介します。
S_OCTET(x)
1バイトをメモリを書き込む。
uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q++ が実行される。
S_BE_WORD(x)
2バイトをメモリを書き込む。
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 が返る。
ビットマップの1がHi,0がLoとなります。
bPortCheckBitmap(bitmap, c)
読みだしたビットマップのポート c に対応するビットがLoレベルならTRUEを返す。
vPortDisablePullup(c)
ポート c のプルアップを停止する。
_C
switch でスコープを定義したい場合 _C { … } と記述している。
LB
改行コード (CRLF) 文字列です。
2バイトの文字列リテラルですので、vPutChar() では利用できません。
最終更新