TI中文支持网
TI专业的中文技术问题搜集分享网站

283xx问题

请问为什么配置epwm时先禁止TBCLK时钟?

mangui zhang:

具体不知道原因啊 

int main(void){    InitSysCtrl();     DINT;// Disable CPU interrupts     InitPieCtrl();//初始化中断控制寄存器     IER = 0x0000;//关闭CPU中断     IFR = 0x0000;//清除CPU中断标志位     InitPieVectTable();//初始化中断向量表     EALLOW;     PieVectTable.EPWM1_INT = &epwm1_timer_isr;  //配置中断向量地址     EDIS;     //DELAY_US(50000);//延时50ms//延时50ms,等待控制板上其他模块完成初始化     EALLOW;     SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;  //在配置ePWM模块前先禁止TBCLK时钟     EDIS;        EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO; // 选择计数器值=0启动ADC转换        EPwm1Regs.ETPS.bit.INTPRD = ET_1ST; //每次中断事件发生时都产生一次中断请求        EPwm1Regs.ETCLR.bit.INT = 1; //清中断信号状态标志位     //************************配置软件强制寄存器******************************        //EPwm1Regs.AQSFRC.bit.RLDCSF=0x3;//软件连续强制寄存器工作在立即模式下        //EPwm2Regs.AQSFRC.bit.RLDCSF=0x3;//软件连续强制寄存器工作在立即模式下        //EPwm3Regs.AQSFRC.bit.RLDCSF=0x3;//软件连续强制寄存器工作在立即模式下    //************************************************************************        IER |= M_INT3;// 使能CPU INT3模块的中断功能        PieCtrlRegs.PIEIER3.bit.INTx1= 1; //使能PIE模块中EPWM INT1        EALLOW;        PieVectTable.EPWM1_INT = &epwm1_timer_isr;  //配置中断向量地址        EDIS;        Epwm_modules.PeriodMax = Periodmax;  //设定计数器的最大计数值        ePWMs_Init(&Epwm_modules); //调用ePWM模块的初始化函数,开始初始化        EALLOW;        SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0x1; //配置完成后,重新使能TBCLK时钟信号       EDIS;       EINT;   //开全局中断       ERTM;   //开实时中断     while(1);}

赞(0)
未经允许不得转载:TI中文支持网 » 283xx问题
分享到: 更多 (0)