您好!
我对 InstaSPIN 项目和实验室有疑问。
具体而言、它位于 Lab10a (过调制)和 Lab10c (带 fpu32的 Lab10a)上。
我发现 mainISR()在 Lab10a 和 Lab10c 之间有一些差异。
------------------------------------------------------------------
Lab10a 的 mainISR()中的代码片段如下:
if (measurableShuntThisCycle > two_PHASE_measurable)
{
gAdcData.I.value[0]= gIavg.value[0];
gAdcData.I.value[1]= gIavg.value[1];
gAdcData.I.value[2]= gIavg.value[2];
}
我对该代码片段的分析 如下:
(1) measableShuntThisCycle 的变量具有枚举的数据类型。 two_phase 可测量的常量等于2、而 all_phase 可测量的常量等于1。
(2)因此、除非 针对 高负载电流激活过调制、否则大多数情况下都不能执行上述代码片段。 在这里、 我的 PCB 具有三个低侧分流电流测量的配置。
同时,Lab10c mainISR()中的代码片段如下:
if (忽略 ShuntThisCycle > USE_ALL)
{
gAdcData.I.value[0]= gIavg.value[0];
gAdcData.I.value[1]= gIavg.value[1];
gAdcData.I.value[2]= gIavg.value[2];
}
我对该代码片段的分析 如下:
(1) ignoreShuntThisCycle 的变量具有枚举的数据类型。 use_all 的常量等于0。
(2)因此、始终执行上面列出的代码片段。
----------------------------------------------------------------
请评论我对这些代码段的分析。
为什么 Lab10a 和 Lab10c 使用与上述代码片段相关的不同 mainISR()函数?
感谢您的指导。
此致、
JS Yoo