Other Parts Discussed in Thread: C2000WARE
问题如上,我在中断里实时改变EPwm4Regs.SWVDELVAL的值,但是EPwm4Regs.HWVDELVAL不等于EPwm4Regs.SWVDELVAL。
//DC模块
EPwm4Regs.DCAHTRIPSEL.bit.TRIPINPUT4 = 1;//DCAH = TRIP4
EPwm4Regs.TZDCSEL.bit.DCAEVT1 = 2;//对选定 DCAH 信号的操作,DCAH = 高
EPwm4Regs.DCACTL.bit.EVT1SRCSEL = 1;
EPwm4Regs.DCACTL.bit.EVT1FRCSYNCSEL = 0;
EPwm4Regs.DCACTL.bit.EVT1SYNCE = 1;
//时间滤波
EPwm4Regs.DCFCTL.bit.SRCSEL = 0;
EPwm4Regs.DCFCTL.bit.EDGEFILTSEL = 1; //enable edge filter
EPwm4Regs.DCFCTL.bit.EDGEMODE = 0; //Edge Mode Select
EPwm4Regs.DCFCTL.bit.EDGECOUNT =1; // Edge Count
//谷底+延时
EPwm4Regs.VCAPCTL.bit.TRIGSEL = 1;//选择触发源作为重置并重新启动边沿滤波器
EPwm4Regs.VCAPCTL.bit.VCAPE = 0;//
EPwm4Regs.VCAPCTL.bit.EDGEFILTDLYSEL = 1;//应用 DELAY
EPwm4Regs.SWVDELVAL= Tdelay;
//消隐窗口
EPwm4Regs.DCFCTL.bit.BLANKE = 1;
EPwm4Regs.DCFCTL.bit.PULSESEL = 1;
EPwm4Regs.DCFOFFSET = 1;
EPwm4Regs.DCFWINDOW = 1;
EPwm4Regs.DCCAPCTL.bit.CAPE = 1;