您好!
当其中一个 DCAEVT1出现时、我想要捕获计数器的值。 DCAEVT1在一个周期内发生两次(每个向上方向和向下方向(我在向上向下模式中使用 PWM 模式)。
现在我将在其中一个计时器 ISR 中读取 DCCAP 寄存器、该计时器 ISR 与 PWM 计数器异步。 为了仅在 DCAEVT1向上方向发生时获取捕获计数、仅当 EPwm1Regs.TBSTS.bit.CTRDIR = 0时、我将读取寄存器、另一种配置如下。
EPwm1Regs.DCCAPCTL.bit.SHDWMODE = 0;
EPwm1Regs.DCCAPCTL.bit.CAPMODE = 0;
现在、根据我的理解、如果 EPwm1Regs.DCFCTL.bit.PULSESEL = 0、捕获寄存器将在 COUNTER =PRD 时更新、因此为计数器处于向上方向时发生的事件提供计数值。 但在这种情况下、它提供了一些与计数器处于递减方向时相对应的时间计数。
虽然如果 EPwm1Regs.DCFCTL.bit.PULSESEL = 1、但它给出了正确的结果、不知道当它在 CTR=Zero 处更新时是如何提供与计数 器向下计数方向相对应的计数值
实际上、根据要求、我需要使用 EPwm1Regs.DCFCTL.bit.PULSESEL = 2、在这种配置下、它 并不总是捕获 与向上方向对应的计数值。
请告诉我需要使用哪种配置、以便仅在向上方向捕获计数。
谢谢你。
