本帖最后由 fjflean 于 2013-3-27 21:42 编辑
最近刚刚开始学dsp,用的是28335的片子,我想做两路捕获同时捕获进行捕获PWM波形,用的是ecap1和ecap2,现在发现ecap1中能捕获到pwm,而ecap2捕获不到,这个问题很是困扰,请各位大神帮帮忙,谢谢~
ecap配置如下,不知道哪里错了。。。
是否是在配置ecap的时候有错误啊?在ecap1中能得到pwm的数据,就是ecap2中没有数据。
void InitECapture()
{
ECap1Regs.ECCTL2.bit.CAP_APWM=0;
ECap1Regs.ECEINT.all=0x0000;//禁止所有捕捉中断
ECap1Regs.ECCLR.all=0xFFFF;//清除所有CAP中断标志位
ECap1Regs.ECCTL1.bit.CAPLDEN=0;//禁止CAP1~CAP4寄存器装载
ECap1Regs.ECCTL2.bit.TSCTRSTOP=0;//确保计数器停止
ECap2Regs.ECCTL2.bit.CAP_APWM=0;
ECap2Regs.ECEINT.all=0x0000;//禁止所有捕捉中断
ECap2Regs.ECCLR.all=0xFFFF;//清除所有CAP中断标志位
ECap2Regs.ECCTL1.bit.CAPLDEN=0;//禁止CAP1~CAP4寄存器装载
ECap2Regs.ECCTL2.bit.TSCTRSTOP=0;//确保计数器停止
ECap2Regs.ECCTL1.bit.PRESCALE=1;//预订标
ECap2Regs.ECCTL2.bit.CONT_ONESHT=0;//连续
ECap2Regs.ECCTL1.bit.CAP1POL=0;
ECap2Regs.ECCTL1.bit.CAP2POL=0;
ECap2Regs.ECCTL1.bit.CAP3POL=0;
ECap2Regs.ECCTL1.bit.CAP4POL=0;
ECap2Regs.ECCTL1.bit.CTRRST1=0;//采用绝对时间标签
ECap2Regs.ECCTL1.bit.CTRRST2=0;
ECap2Regs.ECCTL1.bit.CTRRST3=0;
ECap2Regs.ECCTL1.bit.CTRRST4=0;
ECap2Regs.ECCTL2.bit.SYNCI_EN=1;
ECap2Regs.ECCTL2.bit.SYNCO_SEL=2;//禁止外部同步信号
ECap2Regs.ECCTL1.bit.CAPLDEN=1;//使能捕获单元
ECap2Regs.ECCTL2.bit.TSCTRSTOP=1;//启动计数器
ECap2Regs.ECCTL2.bit.REARM=1;
ECap2Regs.ECCTL1.bit.CAPLDEN=1;
ECap1Regs.ECCTL1.bit.PRESCALE=1;//预订标
ECap1Regs.ECCTL2.bit.CONT_ONESHT=1;//单次
ECap1Regs.ECCTL2.bit.STOP_WRAP=3;//在事件4停止
ECap1Regs.ECCTL1.bit.CAP1POL=0;
ECap1Regs.ECCTL1.bit.CAP2POL=0;
ECap1Regs.ECCTL1.bit.CAP3POL=0;
ECap1Regs.ECCTL1.bit.CAP4POL=0;
ECap1Regs.ECCTL1.bit.CTRRST1=0;//采用绝对时间标签
ECap1Regs.ECCTL1.bit.CTRRST2=0;
ECap1Regs.ECCTL1.bit.CTRRST3=0;
ECap1Regs.ECCTL1.bit.CTRRST4=1;//采用差分模式运行
ECap1Regs.ECCTL2.bit.SYNCI_EN=0;
ECap1Regs.ECCTL2.bit.SYNCO_SEL=2;//禁止外部同步信号
ECap1Regs.ECCTL1.bit.CAPLDEN=1;//使能捕获单元
ECap1Regs.ECCTL2.bit.TSCTRSTOP=1;//启动计数器
ECap1Regs.ECCTL2.bit.REARM=1;
ECap1Regs.ECCTL1.bit.CAPLDEN=1;
ECap1Regs.ECEINT.bit.CEVT4=1;
}
|