主函数如下:
#include<DSP28_Device.h>
void main(void)
{
InitSysCtrl();
DINT;
IER=0x0000;
IFR=0x0000;
InitPieCtrl();
InitPieVectTable();
InitPeripherals();/*初始化CPU定时器模块*/
InitGpio();
PieCtrl.PIEIER1.bit.INTx7=1;/*使能PIE模块中的CPU定时器0的中断*/
IER|=M_INT1;/*开CPU中断1*/
EINT;/*使能全局中断*/
ERTM;/*使能实时中断*/
ConfigCpuTimer(&CpuTimer0,150,1000000);
StartCpuTimer0();
for(;;)
{
}
}
InitGpio函数如下:
void InitGpio(void)
{
EALLOW;
// 在这里插入初始化函数的代码
GpioMuxRegs.GPAMUX.all=0x0000;/*GPIOA作为I/O工作模式*/
GpioMuxRegs.GPADIR.all=0xffff;/*GPIOA作为输出模式*/
GpioMuxRegs.GPAQUAL.all=0x0000;/*GPIOA无量化输出*/
EDIS;
}
中断服务函数如下:
interrupt void TINT0_ISR(void) // CPU-Timer0中断函数
{
CpuTimer0.InterruptCount++;
if(CpuTimer0.InterruptCount==1)
{
GpioDataRegs.GPACLEAR.all=1;
}
if(CpuTimer0.InterruptCount==2)
{
GpioDataRegs.GPASET.all=1;
CpuTimer0.InterruptCount=0;
}
CpuTimer0Regs.TCR.bit.TIF=1;
PieCtrl.PIEACK.bit.ACK1=1;
EINT;
} |