-
初学dsp的菜鸡求助发四路pwm信号!
本帖最后由Imbalyc于2023-7-1715:28编辑我是初学DSP,在网上看的普中的视频,按照普中的官方例程改的程序,能正常烧录。目的:控制epwm1(对应GPIO0和GPIO1)、epwm6(对应GPIO10和GPIO11)发出四路互补带死区PWM信号现象:只有GPIO0和GPIO1两引脚上能采到互补带死区PWM信号,剩下两路没有采到信号。后来试过屏蔽GPIO0和GPIO1的程序,只使能GPIO10和GPIO11,还是只能在GPIO0和GPIO1两引脚上采到互补带死区PWM信号。想请教一下各位大佬,根据我的描述或看一下我改的程序,给点意见,这问题困扰我很久了,谢谢!###NextPage[title=epwm.c]###/**epwm.c#include"epwm.h"#include"leds.h"voidEPWM1_Init(Uint16tbprd){EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;//DisableTBCLKwithintheePWMSysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK=1;//ePWM1EDIS;InitEPwm1Gpio();EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;//StopalltheTBclocksEDIS;//SetupSyncEPwm1Regs.TBCTL.bit.SYNCOSEL=TB_SYNC_DISABLE;//Passthrough//Alloweachtimertobesync'edEPwm1Regs.TBCTL.bit.PHSEN=TB_DISABLE;EPwm1Regs.TBPHS.half.TBPHS=0;EPwm1Regs.TBCTR=0x0000;//ClearcounterEPwm1Regs.TBPRD=tbprd;EPwm1Regs.TBCTL.bit.CTRMODE=TB_COUNT_UP;//CountupEPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV1;EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV1;//SetupshadowregisterloadonZEROEPwm1Regs.CMPCTL.bit.SHDWAMODE=CC_SHADOW;EPwm1Regs.CMPCTL.bit.SHDWBMODE=CC_SHADOW;EPwm1Regs.CMPCTL.bit.LOADAMODE=CC_CTR_ZERO;EPwm1Regs.CMPCTL.bit.LOADBMODE=CC_CTR_ZERO;//SetComparevaluesEPwm1Regs.CMPA.half.CMPA=0;//SetcompareAvalueEPwm1Regs.CMPB=0;//SetCompareBvalue//SetactionsEPwm1Regs.AQCTLA.bit.ZRO=AQ_CLEAR;//SetPWM1AonZeroEPwm1Regs.AQCTLA.bit.CAU=AQ_SET;//ClearPWM1AoneventA,upcountEPwm1Regs.AQCTLB.bit.ZRO=AQ_SET;//SetPWM1BonZeroEPwm1Regs.AQCTLB.
2023-07-17 0