arm_offset_q15関数
配列にオフセットを加算する

関数のソース(CMSIS 2.0以上をダウンロード・インストールする必要あり)
CMSIS_2_00\CMSIS\DSP_Lib\Source\Cortex-M4-M3\BasicMathFunctions\arm_offset_q15.c

サンプルソース(DFFSKN40基板付属CD-ROMに収録)
IARprojects\src\projects\arm_offset

引数と戻り値


説明(イメージ)


使用例(サンプルソースの一部)

q15_t a[] = {10000, -12345, 32600, 32700};
q15_t c[] = {0, 0, 0, 0};

 : 中略

arm_offset_q15( a, 100, c, 4 );

この関数を実行すると配列cの中に結果が入っている。

実験
上記のサンプルソースをDFFSKN40基板(デジタルフィルター社)にて実験した。Cortex-M4マイコンはPK40X256VMD100(Kinetis, フリースケール社)搭載。演算結果をLCDに16進数で表示している。

下の写真はn = 0のとき。
a[0] = 10,000, offset = 100なので、
10,000 + 100 = 10,100 = c[0]
16進数で: 0x 2774


下の写真はn = 1のとき。
a[1] = -12,345, offset = 100なので、
-12,345 + 100 = -12,245 = c[1]
16進数で: 0x D02B


下の写真はn = 2のとき。
a[2] = 32600, offset = 100なので、
32,600 + 100 = 32700 = c[2]
16進数で: 0x 7FBC


下の写真はn = 3のとき。
a[3] = 32,700, offset = 100なので、
32,700 + 100 = 32,800 ←Q15の範囲を超えている
この場合、最大値で飽和させる。32,767 = c[3]
16進数で: 0x 7FFF


戻る

Top Page