主题中讨论的其他器件:C2000WARE
各位专家、您好!
我的客户使用 eCAP 模块来捕获霍尔脉冲宽度。 三个霍尔信号连接到三个 eCAP 模块。 他需要在霍尔信号的上升沿和下降沿进入中断、并在中断中的跃点边缘接近之前获得时间宽度、如下图所示。

在测试过程中、他发现当为 霍尔信号捕获两个边沿并打开其相应的中断时、只会触发第一个中断。 第二个中断既不被触发也不被捕捉、请帮助确认这是一个配置问题还是 eCAP 模块特性?
ECap1Regs.ECCTL1.bit.CAP1POL=0 ;
ECap1Regs.ECCTL1.bit.CAP2POL=1 ;
ECap1Regs.ECEINT.BIT.CEVT1 = 1;
ECap1Regs.ECEINT.BIT.CEVT2 = 1;
2.他需要捕获三个霍尔传感器中任意两个的异或之间的边沿间隔、如下图中的 T1~T6所示。

当前的做法是使用 eCAP1~eCAP3的 SyncIn 和 SyncOut、并将三个 ECAP 的中断条目设置为相同。 当进入中断时、使用 ECap1Regs.ECCTL2.bit.SWSYNC=1;
强制 TSCTR 寄存器同步三个 eCAP、由于出现问题1、折衷方案是将中断中的 ECap1Regs.ECCTL1.bit.CAP1POL 值反相、使硬件响应下一个边沿触发。
由于需要进行软件操作、因此这种方法可能具有不准确的捕获时间。
问题是:
是否有更好的方法来实现:三个霍尔连接到三个 eCAP、并且 eCAP1~eCAP3信号的 XOR 之后的任何边沿都可以进入中断、并捕获 XOR 到达该边沿的最后一个边沿的时间?
我上传以下代码并期待您的回复。 谢谢!

