主题中讨论的其他器件:LAUNCHXL-F28379D、 MOTORWARE、 DRV8305
我一直在修改 motorware 中的 TMDXIDDK379D FCL 项目、以便 使用 DRV8305驱动程序处理 launchxl-f28379d。 我在经历了相当大的困难后取得了很大的成功。 控制工作正常、但 FCL 代码会一直等待 FCL_CPU_CODE.c FCL_POSITION _CURRENT_Clarke_MACRO 中的 ADC 中断
while(!(AdcIntFlag->bit.ADCINT1));
我在 while ()之前和之后添加了一个 GPIO 高电平、这表明它在那里等待整个 PWM 周期(请参阅通道4上的 GPIO 和 PWM 的图像)。
这种情况的问题是 CPU 不断地进入 ISR、这样它就没有机会为 main 中的以下行提供服务:
(*Alpha_State_Ptr)(); // jump to an Alpha state (A0,B0,...)
并且 CPU 上不能运行其他代码。 这是正确的行为吗? 那么、移动 ISR 在 ADC 上触发是否有意义? 在本例中、我在 FCL 的核心设计中是否缺少在 PWM 上选择 ISR 而不是在 ADC 上选择 ISR 的内容?
此致