大家好、
对于 MPY32硬件乘法器:
使用由 EnergyMeasurementDesignCenter-1.40.00.03生成的代码。
2. MSP DSP 库:使用 DSPLIB_1_30_00_02。
3.在 ADC SD24中以4K 采样频率捕获中断、在中断中调用 emSwLib 库中的算法函数、并使用 MPY32进行分析。
使用在中断之外执行的函数 MSP_FFT_iq31、从 ADC 为 FFT 收集的数据中获取256个数据。
问题:
通过使用一组 FFT 测试数据、可以发现每次转换后的结果是不同的。 每次执行 FFT 之前、使用_disable_interrupt 关闭中断后的 FFT 结果都是相同的、其他 FFT 算法也是如此。 应该是、MSP_FFT_iq31被 ADC 中断、并且 MPY32在 MPY32过程中被使用、导致 MPY32原始数据损坏、每次发出 FFT 时产生不同的结果。 客户在进入中断计算时尝试备份 MPY32相关寄存器、在退出中断时恢复 MPY32相关寄存器、但问题仍然存在。

客户想知道是否可以通过恢复 MPY32寄存器来解决此问题、或者是否有办法解决此问题? 注意:中断无法关闭、因为在 ADC 中断中执行了一些更重要的操作。
您可以帮助检查此案例吗? 谢谢。
此致、
樱桃


