写个小程序,用EVA的通用定时器1写一个定时 10ms 的中断。....

2019-07-15 19:59发布

写个小程序,用EVA的通用定时器1写一个定时 10ms 的中断。求高手指点一下,新手不太会弄,谢谢啦!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
heixue509
1楼-- · 2019-07-16 01:58
   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;//开启中断
ww浩子ww
2楼-- · 2019-07-16 03:20
本帖最后由 ww浩子ww 于 2014-3-13 21:49 编辑
heixue509 发表于 2014-3-13 11:33
EALLOW;
   PieVectTable.TINT0 = &TINT0_ISR;       //定时0中断 int0
   EDIS;

你好,请问你能用EVA里的通用定时器1写个吗?你这是用的CPU定时器0呀!!!!谢谢啦!!!
其实我的具体要求是:用EVA的通用定时器1写一个定时 10ms 的中断,并且要求以ms为单位可变更,例如,我这个程序写的是10ms,我要是需要100ms的话,把10ms中的10改成100,这样就变成定时100ms的中断了。你会吗???谢谢啦 好心人!!!
heixue509
3楼-- · 2019-07-16 05:08
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;
}
happydk
4楼-- · 2019-07-16 10:01
非常好的资料啊,多谢.

一周热门 更多>