我的程序可能使那里没有设置好,用capfifo来测速,但capfifo读出来的数总不正确,在我的程序里,每一次进cap中断读一次capfifo的值,但capfifo的状态位除了在开始测速。转速特别低时刻能为01或10,大多数时间是11,读出的数与示波器上显示的数偶尔或相等但大多时间是不等的,请问是什么原因我的cap中断程序:
interrupt void CAPINT4_ISR(void) // EV-B
{
PieCtrl.PIEACK.all = PIEACK_GROUP5; // Must acknowledge the PIE group
EvbRegs.EVBIFRC.bit.CAP5INT=1;
rMHall_1=EvbRegs.CAP5FIFO;
EvbRegs.T4CNT=0x0000;