|
由于一些原因,我必须要用F2812里的EVB中定时器3来定时产生周期中断,
下面是我的EVB设置:
EvbRegs.GPTCONB.all = 0x0859;
EvbRegs.T3CNT = 0;
EvbRegs.T3CON.all = 0x1000;
EvbRegs.T3PR = 5000;
EvbRegs.T3CMPR = 0x3fff;
主程序如下:
#include \"DSP28_Device.h\"
interrupt void ISRT3PINT(void);
void main(void)
{
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE控制寄存器*/
InitPieCtrl();
/*初始化PIE矢量表*/
InitPieVectTable();
/*初始化EV*/
InitEv();
EALLOW;
PieVectTable.T3PINT = &ISRT3PINT;
EDIS;
IER |= M_INT4;//中断使能寄存器INT2级中断使能
PieCtrl.PIEIER4.bit.INTx4 =1;//外设中断扩展模块的2组第6个中断使能
PieCtrl.PIEACK.bit.ACK4=1;//清除馍柚卸侠┱鼓?榈?组应答位
PieCtrl.PIEIFR4.bit.INTx4=1;//外设中断扩展模块的2组第6个中断标志清除,如取回中断向量,会自动清除
EvbRegs.EVBIFRA.bit.T3PINT= 1 ;
EINT;
ERTM;
StartTimer3();
for(;
{
KickDog();
}
}
interrupt void ISRT3PINT(void)
{
if (EvbRegs.EVBIFRA.bit.T3PINT==0){return;}
StopTimer3();
EvbRegs.T3CNT=0x0000;
EvbRegs.EVBIFRA.bit.T3PINT= 1;
PieCtrl.PIEACK.bit.ACK4=1; //Enable T3PINT Int
EINT;
}
请高手看看对不对,是不是还有什么东西需要设置一下,因为我
这样设置在运行时始终进入不了 ISRT3PINT的中断程序~~~不胜感激!!!
|
|