定时器 联系客服

发布时间 : 星期一 文章定时器更新完毕开始阅读5774f97f79563c1ec4da7141

#include \//...........函数声明

interrupt void cpu_time0_isr(void); interrupt void cpu_time1_isr(void); interrupt void cpu_time2_isr(void); //...........主程序 void main () {

//系统初始化,对pll,watchdog,enable,peripheral,chlocks进行初始化 InitSysCtrl();//TI公司提供的 dspf2883x_Sysctrl.c的头文件 //禁止cpu中断 DINT;

//初始PIE模块的寄存器到默认状态;禁止所有PIE中断;中断表标志位都为0; InitPieCtrl();

//禁止cpu中断并清除cpu中断标志位。 IER=0x0000; IFR=0x0000;

//初始化中断向量列表 InitPieVectTable()

//为中断向量列表中的特定向量写入中断服务函数的地址 ;

//this is needed to write to EALLOW portacted registers PieVecTable.TINT0=&cpu_time0_isr; PieVecTable.TINT13=&cpu_time1_isr; PieVecTable.TINT2=&cpu_time2_isr; EDIS;

InitCpuTimers()

//为定时器设定中断周期,同时在函数内部使能定时器中断 #if(CPU_FRQ_150MHZ)

ConfigCpuTimer(&CpuTimer0,150,1000000); ConfigCpuTimer(&CpuTimer1,150,1000000); ConfigCpuTimer(&CpuTimer2,150,1000000); #endif

#if(CPU_FRQ_100MHZ)

ConfigCputimer(&CpuTimer0,100,100000); ConfigCpuTimer(&CpuTimer1,100,100000); ConfigCpuTimer(&Cputimer2,100,100000); //启动定时器开始运行

CpuTimer0Regs.TCR.all=0x4001; CpuTimer1Regs.TCR.all=0x4001; Cputimer2Regs.TCR.all=0x4001; //cpu级;使能cpu级信号中断 IER|=M_INT1; IER|=M_INT13;

IER|=M_INT14; //使能全局中断 EINT; ERTM;

//等待定时器中断 for( ; ; ); }

//===================中断服务子函数============= interrupt void cpu_timer0_isr(void) {

CpuTimer0.InterruptCount++; pieCtrlRegs.PIEACK.all=PIEACK_GROUP1; }

interrput void cpu_timer1_isr(void) {

CpuTimer1.InterruptCount++; EDIS; }

interrput void cpu_timer2_isr(void) {

EALLOW;

CpuTimer2.InterrputCount++; EDIS; }

//================================= //======end of file.

//=================================