我想启用 DPWM 周期中断的快速中断。 初始化代码如下所示:
Dpwm3Regs.DPWMIT.bit.PRD_INT_SCALE = 0x04;//每个16个切换周期(用于复位积分器)生成中断*
Dpwm3Regs.DPWMIT.bit.PRD_INT_EN = 1;
LoopMuxRegs.GLBEN.ALY|= 0x008;//启用 dpwm3 *
Dpwm3Regs.DPWMCTRL0.bit.PWM_EN = 1;disable_interrupt ();
disable_fast_interrupt ();//确保禁用快速中断*/
WRITE_REQMASK (CIMINT_All_PWM2_COMP|CIMINT_All_FAULT_MUX|CIMINT_All_DPWM3);//启用 pwm2cmp 和 DPWM0中断(第16个周期结束)(int-priority29)*/
WRITE_FIRQpr (CIMINT_All_FAULT_MUX|CIMINT_All_DPWM3);// DPWM0中断(第16个周期结束)映射到 FIQ */
enable_fast_interrupt ();
enable_interrupt ();
我在快速中断中设置调试引脚切换。 代码如下所示:
FIR_INDEX = CimRegs.FIQIVEC.ALL;
if (fif_index = 27)//索引= N-1 = 26 DPWM
{
杂项 AnalogRegs.GLBIOVAL.bit.ADC_EXT_TRIG_IO_VALUE ^= 1;
Dpwm3Regs.DPWMIT.bit.PRD_INT_EN = 1;//清除中断标志
}
但 我发现调试引脚切换时间不是6.25*4=25us、而是大约4us。 开关频率为160KHz、为什么? 在分压表中、开关周期不是开关频率?
