This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的专家:
当我配置 "ePWM 2模块"中寄存器"EPWMXLINK "中"TBPRDLINK"和"CMPALINK"以及"CMPALINK"的位区域 以链接到 EPWM2时。 我发现它不起作用。 代码如下所示。
/******** / /*ePWM 模块2配置到 LLC PRI 2驱动程序*/ /******** / EPwm2Regs.EPWMXLINK.BIT.TBPRDLINK = 0; EPwm2Regs.EPWMXLINK.BIT.CMPALINK = 0; EPwm2Regs.EPWMXLINK.BIT.CMPBLINK = 0; EPwm2Regs.GLDCTL=0xMOLD.TMPREG=1 ;EPwCMDL.TCLK.BIT EPwm2Regs.GLDCTL.bit.GLDPRD=0x00; EPwm2Regs.GLDCTL.bit.GLDMODE=0x03; EPwm2Regs.GLDCFG.bit.TBPRD_TBPRDHR=1; EPwm2Regs.GLDCFG.bit.DBRED=1;EPw2REDLDREGLDREGHR=1 ;EPwLDFLDREDP.DBRDE.DBRF.BLDREGHR=1 EPwm2Regs.GLDCFG.bit.DBCTL=1; EPwm2Regs.GLDCFG.bit.CMPAHR=1; EPwm2Regs.GLDCFG.bit.CMPB_CMPBHR=1; EPwm2Regs.GLDCFG.bit.CMPC=1;EPwm2Regs.CMP=1 ;EPwLDCMPB.CMP=1;EPwMCLG.CMP=1 EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; /*设置影子加载*/ EPwm2Regs.TBCTL2.bit.PRDLDSYNC= 01; /*?TBCTR=0 SYNC OCCURS 如果需要大延迟,必须为负载添加同步点*/ EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; /*? 递增计数模式*/ EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; /*启用相位加载*/ EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; /*同步输出选择:TB_SYNC_IN */ EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; /* TBCLK = EPWMCLK /(HSPCLKDIV x CLKDIV)* EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; /* = 100MHz /(1*1)= 100MHz */ EPwm2Regs.TBCTL.bit.PHSDIR=0; EPwm2Regs.TBPRD = LLC_PWM_PER_DFT;/* PWM 频率= 60kHz */ EPwm2Regs.CMPA.bit.CMPA = LLC_PWM_Duty_DFT;//将 PWM 占空比设置为50%*/ EPwm2Regs.CMPB.bit.CMPB = LLC_PWM_Duty_DFT;//0; EPwm2Regs.TBPHS.bit.TBPHS = 00; /*设置为从器件、PHASE = 0 */ EPwm2Regs.TBCTR = 0; /*时基计数器=0 */ EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // CTR=PRD 上的加载*/ EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // CTR=PRD 上的加载*/ EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE; /*阴影模式。 用作双缓冲器。 * EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; /*阴影模式。 用作双缓冲器。 * EPwm2Regs.CMPCTL.bit.LOADASINC=1;/**/ EPwm2Regs.CMPCTL.bit.LOADBSYNC=1; //EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET; /*将 PWM2A 设置为零*/ //EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR; /*在事件 A 上清除 PWM2A、向上计数*/ // EPwm2Regs.AQCTLB.bit.ZRO = AQ_SET; /*将 PWM2B 设置为零*/ // EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR; /*清除事件 B 上的 PWM2B,向上计数*/ EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET; /*将 PWM1A 设置为零*/ EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR; /*在事件 A 上清除 PWM1A、向上计数*//EPwm2Regs.AQCTLA.bit.PRD =AQ_CLEAR; //EPwm2Regs.AQCTLA.bit.CAD =AQ_SET; EPwm2Regs.AQCTLB.bit.ZRO = AQ_SET; /*将 PWM1B 设置为零*/ // EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR; /*清除事件 B 上的 PWM1B、向上计数*//EPwm2Regs.AQCTLB.bit.PRD =AQ_SET; EPwm2Regs.AQCTLB.bit.CAD =AQ_CLEAR; EPwm2Regs.AQSFRC.bit.RLDSF = 3; /*软件强制事件出现时,立即加载*/ EPwm2Regs.DBCTL.bit.IN_MODE = DBA_RED_DBB_FED; /* EPWMxA 是两种延迟的来源*/ EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE; /*启用死区模块*/ EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; /*高电平有效互补(AHC)*// EPwm2Regs.DBCTL.bit.OUTSWAP = 3; /*交换输出 AQA-EPWMB*/ EPwm2Regs.DBCTL.bit.SHDWDBREDMODE = 1; /*启用 DB*/的影子模式 EPwm2Regs.DBCTL.bit.LOADREMODE = 1; /*在 prd*/上加载阴影 EPwm2Regs.DBCTL.bit.SHDWDBFEDMODE = 1; /*启用 DB*/的影子模式 EPwm2Regs.DBCTL.bit.LOADFEDMODE = 1; /*在 prd*/上加载阴影 EPwm2Regs.DBRED.bit.DBRED = LLC_INIT_DEADBAND;//最初为30 TBCLK */ EPwm2Regs.DBFED.bit.DBFED = LLC_INIT_DEADBAND;//最初馈送= 30 TBCLK */ EPwm2Regs.AQCSFRC.bit.CSFA = 00; /*禁用 EPWM2B 输出*/ EPwm2Regs.AQCSFRC.bit.CSFB =00; /*禁用 EPWM2A 输出*/