arm_add_q15関数
2つの配列の各要素を加算する

関数のソース(CMSIS 2.0以上をダウンロード・インストールする必要あり)

CMSIS_2_00\CMSIS\DSP_Lib\Source\Cortex-M4-M3\BasicMathFunctions\arm_add_q15.c
サンプルソース(DFFSKN40基板付属CD-ROMに収録)
IARprojects\src\projects\arm_add

引数と戻り値


説明(イメージ)


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

q15_t a[] = {10000, -12345, -10000, -30000};
q15_t b[] = {20000, 22222, -13579, -10000};
q15_t c[] = {0, 0, 0, 0};

 : 中略

arm_add_q15( a, b, c, 4 );

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

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

下の写真はn = 0のとき。
a[0] = 10,000, b[0] = 20,000なので、
10進数で: 10,000 + 20,000 = 30,000 = c[0]
16進数で: 0x 7530


下の写真はn = 1のとき。
a[1] = -12,345, b[1] = 22,222なので、
10進数で: -12,345 + 22,222 = 9,877 = c[1]
16進数で: 0x 2695


下の写真はn = 2のとき。
a[2] = -10,000, b[2] = -13,579なので、
10進数で: -10,000 + (-13,579) = -23,579 = c[2]
16進数で: 0x A3E5


下の写真はn = 3のとき。
a[3] = -30,000, b[3] = -10,000なので、
10進数で: -30,000 + (-10,000) = -40,000 ←Q15の範囲を超えている。
この場合、負の最大値で飽和させる。-32,768 = c[3]
16進数で: 0x 8000


戻る

Top Page