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.

CAP捕获问题

我使用CAP4进行捕获中断,检测频率,配置如下:

EvbRegs.T4CON.bit.FREE=0;//仿真挂起,立即停止

EvbRegs.T4CON.bit.SOFT=0;

EvbRegs.T4CON.bit.TMODE=2;//连续增

EvbRegs.T4CON.bit.TPS=7;//预定标寄存器为0,T4CLK=HSPCLK/64

EvbRegs.T4CON.bit.TENABLE=0;//禁止定时器T4 //主程序中打开

EvbRegs.T4CON.bit.TCLKS10=0;//使用内部时钟

EvbRegs.T4CON.bit.TCLD10=1;//定时器比较寄存器重载条件:当计数器值为0

EvbRegs.T4CON.bit.TECMPR=0;//禁止定时器比较操作

EvbRegs.GPTCONB.all=0;

EvbRegs.T4PR=0xffff; //Freq=(TCLK*1000000)/(T1PR+1)=1000HZ

EvbRegs.T4CMPR=0;//占空比

EvbRegs.T4CNT=0x0000;

EvbRegs.EVBIFRB.bit.T4PINT=1;

EvbRegs.EVBIMRB.bit.T4PINT=1;

/***** CAP4       **********/

EvbRegs.CAPCONB.bit.CAPRES=0;

EvbRegs.CAPCONB.bit.CAPQEPN=0;//先禁止CAP45,主程序中使能

EvbRegs.CAPCONB.bit.CAP6EN=0;//禁止CAP6

EvbRegs.CAPCONB.bit.CAP45TSEL=0;//CAP4 5选择T4

EvbRegs.CAPCONB.bit.CAP6TOADC=0;//不动ADC

EvbRegs.CAPCONB.bit.CAP4EDGE=1;//上升沿沿

//EvbRegs.CAPFIFOB.bit.CAP4FIFO = 0x0001;

EvbRegs.CAPFIFOB.all=0x0000;

EvbRegs.EVBIMRC.bit.CAP4INT=1;//CAP4中断使能

EvbRegs.EVBIFRC.bit.CAP4INT=1;//CAP4中断标志复位

但是,捕获的时间算出来的频率不正确,计算频率公式没问题,也就是捕获的时间不对,这是为什么??