器件型号: AM2634
在测试程序时、我们发现分配期间代码中存在异常、这导致最初约 32V 的 Lvol 电压变为约 127。
如下图所示、我在程序中向 DCLvVolTest4 添加了 DCLvVolTest1、以观察变量赋值是否有任何异常。如果分配的数据为异常情况、且电压超过 83V、则再次调用读取函数:(void) LvPCmR_DC_ADC_Serv (&Model_DC_PCM_PCM_ConversionTPCR_ADC_Tmarid) Rte_Read_
如消息所示、DCLvVolTest2 和 DCLvVolTest3 遇到读取异常、在程序执行期间、LVVol 值一次更改为 127。

之后、我们进行了仿真分析、发现对于 2634 芯片、浮点型变量的赋值一次完成 8 位。
在这种情况下、当为浮点类型分配值时、分配低 16 位、然后分配高 16 位的低 8 位之后、可能会触发 ADC 中断。 执行中断后、将继续分配高 16 位的高 8 位、而不会重新分配先前分配的值。 在 ADC 中断中、我们将再分配 LVVoL 电压。 如果该分配更改了我们数据的高 16 位的高 8 位、则可能会获取异常值。
我们希望了解我们如何避免这种情况、并期待您的回应。 谢谢你。
我们希望了解我们如何避免这种情况、并期待您的回应。 谢谢你。









