工具/软件:Code Composer Studio
因为、我正在为 MSP432P401R 工作 CCS V_8版本和开发代码。 我正面临一个有关溢出的奇怪问题。 由于我在整个项目中有项目链(ADC-DSP-DAC)、我正在使用控制器的浮点功能在 MSP432上实施大约46倍的数字带通滤波器。 ADC 输入范围为(0-2.5V)、我希望 DAC 的输出范围相同、但问题是当我将输入值增加到大于2.38V 时、会导致溢出问题。 通过改变信号发生器上的偏移量、这个问题可以得到解决、但这不是一个专业的解决方案。 通过谷歌搜索、我阅读了一些有关数据类型转换的文章、并遵循了给定的过程(即 int (float+0.5))、但这对我没有帮助。 因为、我的问题更多地涉及到 C 编程、但我认为它也与 CCS 相关。
当某些值小于零时,由于输出的最后一个值而导致溢出。您能帮助我消除此溢出问题吗??
注意:我也在 代码的特定部分附加了具有溢出和不溢出的输出图片。 我们高度赞赏所有可能的建议。

这两张图显示了滤波器阶跃响应的输入。
AdcInputVoltage = AdcValueDigits *2.5f/16384.0f;
filteredf_output = SincFilter (AdcInputVoltage);
/* if (filteredf_output<0){DacValueDigits =(uint16_t)(((filteredf_output* 65536.0f/4.096f)+0.5);
}
else{DacValueDigits=(uint16_t)((filteredf_output* 65536.0f/4.096f));
}*/
DacValueDigits =(uint16_t)((filteredf_output* 65536.0f/4.096f)+.5);
//DacValueDigits =((uint16_t)((filteredf_output* 65536.0f/4.096f)+32678.5)-32677;
此致、
Hasan Nawaz