主题中讨论的其他部件:C2000WARE
您好,
我正在使用比较器子模块生成一个断路,该断路连接到ePWM tripzone。 我已将行程配置为单触式。 我看到OST标志在TZFLG中为1,但INT标志保持为0。 我需要生成中断,以便在ISR中设置必要的变量。 为什么不生成中断?
比较器和ePWM初始化。
EALLOW; /****步骤1:启用并配置比较子系统。 ****//// 启用CMDSS Cmpss3Regs.COMPCTL.bit.COMPDACE = 1; //NEG信号来自DAC Cmpss3Regs.COMPCTL.bit.COMPHSOURCE = INTERNAL _DAC; //使用VDDA作为DAC Cmpss3Regs.COMPDACCTL.bit.SELREF的参考 = reference_VDDA; //为任意参考 Cmpss3Regs.DACHVALS.bit.DACVAL将DAC设置为中点 = 1118;// 设置为典型滞后 Cmpss3Regs.COMPHYSCTL.bit.COMPHYS = Typical_1x; /****步骤2:配置数字滤波器******//// 最大CLKPRESCALE值提供了两个样本之间的最长时间 Cmpss3Regs.CTRIPHFILCLKCTL.bit.CLKPRESCALE =0; // 0 提供了最大分辨率(10CMPIN.WMPIN.WMPIN/最大 样本数 = 13; //最大阈值需要整个窗口的静态值 //阈值应大于SAMPWIN Cmpss3Regs.CTRIPHFILCTL.bit.therh的一半 =7;/**** 步骤3:在数字FIFO中初始化样本值**/// 不使用初始化。 复位时,所有FIFO值都将为零。 Cmpss3Regs.CTRIPHFILCTL.bit.FILINIT =0;/**** 步骤4:配置CTRIPOUT路径**//// 数字过滤器输出馈送CTRIPH和CTRIPOUTH Cmpss3Regs.COMPCTL.bit.CTRIPHSEL = CTRE_FILTER; Cmpss3Regs.COMPCTL.bit.CTRIPOUTHSEL = ctim_filter; /****步骤5:配置ePWM X-bar模块以接受过滤器输出**//// 将TRIP5配置为CTRIP3H EPwmXbarRegs.TRIP5MUX0TO15CFG.Bit.MUX4 =0;// 为输出MUIP5 Mux 配置TRIP5 MUXbarRegs.TRIP5MUX5.pb配置TRIP5bit /UEPB**** 在 输出上配置MUABITEX4和MUABIPwb:配置MUB****步进= 0 EPwm2Regs.TZCTL.bit.TZA = TZ_FORT_LO; EPwm2Regs.TZCTL.bit.TZB = TZ_FORT_LO; //将DCA配置为TRIP5 EPwm2Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCBH_HI; EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 0x4; // Trip5 EPwm2Regs.DCAHTRIPSEL.bit.TRIPINPUT5 = 0; //单跳闸输入;非ORed //将DCA配置为OST EPwm2Regs.TZsel.bit.DCAEVT1 = 1; //启用 //配置要取消筛选的DCA路径和异步 EPwm2Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1; EPwm2Regs.DCACTL.Bit.EVT1FRCSYNCSEL = DC_EVT_Async; //清除跳闸标志 EPwm2Regs.TZCLR.Bit.OST = 1; EPwm2Regs.TZCLR.Bit.INT = 1; //启用DCA中断 EPwm2Regs.TZEINT.Bit.OST = 1; EDIS;
