Thread 中讨论的其他器件:controlSUITE
工具/软件:TI C/C++编译器
套件中使用了以下代码。 它是平均8个数字。 我对使用的常数有疑问、并且为什么移位是15。 我理解这些是非常基本的问题。
//箱车平均值-将原始样本输入箱车数组中
//--------------------------------------------------
uint32 HistPtr、temp_scratch; //这里的 Temp 意味着临时的
Int16 Gui_Vout; // Q9
int16 K_Vout; //Q15
k_Vout=17050;
temp_scrate=0;
对于(i=0;i<8;i++) temp_scratch = temp_scratch + Hist_Vout[i];
Gui_Vout =((long) temp_scratch *(long) K_Vout)>> 15;
"for loop"将数组 Hist_Vout 中的8个值相加。 什么是函数 "(long) K_Vout)"? 这里是如何使用 IQ 数学的? 为什么换档15?
我在 Mac 上使用 Xcode 运行代码、以更好地了解代码的工作原理、但无法忍受"K_Vout"和 SHIFT 15。 "(long)是否因乘法而被使用?
任何帮助都是非常有价值的。
谢谢