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.

怎么验证中断的周期和设置的中断周期值一致?



/*
* 目的:测试EQEP1_INT的中断是不是由EQEP1产生,以及是怎么产生的?
*
*/
#include "DSP2833x_Examples.h"
#include "DSP2833x_Device.h"

//函数声明
interrupt void eqep1_int(void);
void InitEqep1();
void Initeqep1Gpio();
void InitGpio();

int count=0;
int i=0;
int ii=0;

void main(void)
{
InitSysCtrl();
DINT;
InitPieCtrl();
IER=0x0000;
IFR=0x0000;

Initeqep1Gpio();
InitEqep1();
InitGpio();
InitPieVectTable();

EALLOW;
PieVectTable.EQEP1_INT=&eqep1_int;
EDIS;

PieCtrlRegs.PIEIER5.bit.INTx1=1;

IER |=M_INT5; //cpu级

EINT; //enable global interrupt INTM
ERTM; //enable global realtime interrupt DBGM

for(;;)
{
i=i+1;
}
}


void InitEqep1(void)

{
ii=ii+1;
EQep1Regs.QUPRD=1500000;// 100us

EQep1Regs.QEPCTL.bit.FREE_SOFT=1; //配置仿真器挂起模式
EQep1Regs.QEPCTL.bit.PCRM=01; //位置计数器计到最大值时复位
EQep1Regs.QEPCTL.bit.UTE=1; //使能单位定时器
EQep1Regs.QEPCTL.bit.QCLM=1; //单位时间到,锁存相应计数器值
EQep1Regs.QPOSCNT=0; //配置位置计数器初始值
EQep1Regs.QEPCTL.bit.SWI=1; //软件强制初始化位置计数器
EQep1Regs.QPOSMAX=4095; //配置最大位置计数器
EQep1Regs.QEPCTL.bit.QPEN=1; //使能位置计数器
EQep1Regs.QDECCTL.bit.QSRC=0; //正交计数模式
EQep1Regs.QEINT.bit.UTO=1;

}

void InitGpio()
{
EALLOW;
GpioCtrlRegs.GPADIR.bit.GPIO25=1; //output
GpioCtrlRegs.GPAMUX2.bit.GPIO25=0; //IO
GpioCtrlRegs.GPAPUD.bit.GPIO25=0; //上拉
EDIS;


}

interrupt void eqep1_int(void)
{
count=count+1;
if (count<=100)
{
GpioDataRegs.GPADAT.bit.GPIO25=1;
}
else
{ GpioDataRegs.GPADAT.bit.GPIO25=0;
count=0;
}
PieCtrlRegs.PIEACK.all=0x0FFF;
EQep1Regs.QCLR.bit.UTO=1; //清中断标志
}

根据EQep1Regs.QUPRD=1500000;// 100us知道设置的EQEP1_INT的中断周期是100us。

请问:在该程序中怎么去验证它的中断中期是100us??谢谢