您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 2812的3种CPU定时器用法
TMS320F2818有3个定时器.CpuTimer0.CpuTimer1.CpuTimer2.其中定时器1,2是留给操作系统使用的.在应用程序中同样是可以使用的.dsp定时器是递减计数器,定时器的具体使用方法如下:CpuTimer1.CpuTimer2.的使用基本相同:InitCpuTimers();//对所用定时器的初始化EALLOW;//允许调整TIE向量表PieVectTable.XINT13=&ISRTimer1;/定时器1和外部中断合用一个中断标志位//此处为XINT13并不是TINT1PieVectTable.TINT2=&ISRTimer2;EDIS;ConfigCpuTimer(&CpuTimer1,150,100000);/*设置CPU*/ConfigCpuTimer(&CpuTimer2,150,100000);/*设置CPU*/StartCpuTimer1();/*启动定时器1*/StartCpuTimer2();/*启动定时器2*/IER|=M_INT13;/*定时器1开中断*/IER|=M_INT14;/*定时器2开中断*/这样定时器就会启动,在程序中书写相应的定时器中断服务子程序即可子程序的名称可以是任意合法的名称,形式如下:interruptvoidISRTimer1(void)//名称任意取{CpuTimer0.InterruptCount++;//内部定义的计数变量//用户书写中断服务子程序PieCtrl.PIEACK.all=PIEACK_GROUP1;}中断子程序就是通过PieVectTable.XINT13=&ISRTimer1;PieVectTable.TINT2=&ISRTimer2;这两条语句把子程序与中断连接起来另外需要说明CpuTimer0.InterruptCount++;是内部定义好的变量,中断程序中直接使用定时器0属于中断1中,因此使用稍有不同:在PieVectTable.TINT2=&ISRTimer2;语句后还要加入语句PieCtrl.PIEIER1.bit.INTx7=1;才可以启动定时器中断.另外,由于中断1中有多个中断,因此定时器0中断服务子程序在结束要加入语句PieCtrl.PIEACK.all=PIEACK_GROUP1;保证再次进入中断
本文标题:2812的3种CPU定时器用法
链接地址:https://www.777doc.com/doc-4734913 .html