写个小程序,用EVA的通用定时器1写一个定时 10ms 的中断。....
EALLOW;
PieVectTable.TINT0 = &TINT0_ISR; //定时0中断 int0
EDIS;
InitCpuTimers();
ConfigCpuTimer(&CpuTimer0, 150, 10000);//设定定时器中断时间 10000us = 0.01秒
EALLOW;
PieCtrlRegs.PIEIER1.bit.INTx7=1; //定时中断
IER = IER|M_INT1;
EDIS;
EINT;
ERTM;
CpuTimer0Regs.TCR.bit.TSS=0;//开启中断
你好,请问你能用EVA里的通用定时器1写个吗?你这是用的CPU定时器0呀!谢谢啦!
其实我的具体要求是:用EVA的通用定时器1写一个定时 10ms 的中断,并且要求以ms为单位可变更,例如,我这个程序写的是10ms,我要是需要100ms的话,把10ms中的10改成100,这样就变成定时100ms的中断了。你会吗?谢谢啦 好心人!
void main()
{
''''''''''''''''''''''
EVA_Timer1();
EALLOW;
PieVectTable.T1PINT=&eva_timer1_isr;
EDIS;
PieCtrlRegs.PIEIER2.all=M_INT4;
IER|=M_INT2;
EINT;
...
}
interrupt void eva_timer1_isr(void)
{
...
EvaRegs.EVAIMRA.bit.T1PINT=1;
EvaRegs.EVAIFRA.bit.T1PINT=1;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP2;
}
void EVA_Timer1()
{
EvaRegs.GPTCONA.all=0;
EvaRegs.T1PR=0x01234;//更改数值就可修改时间
EvaRegs.EVAIMRA.bit.T1PINT=1;
EvaRegs.EVAIFRA.bit.T1PINT=1;
EvaRegs.T1CNT=0X000;
EvaRegs.T1CON.all=0x1740;
}
非常好的资料啊,多谢.