#include \"DSPf28833x_project.h\"
//...........函数声明
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.
//=================================
因篇幅问题不能全部显示,请点此查看更多更全内容