发布时间 : 星期一 文章定时器更新完毕开始阅读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.
//=================================