//#####################################################################
//文件: DSP281x_PieCtrl.c
//说明: DSP281x芯片PIE控制寄存器初始化程序
//#####################################################################
#include <DSP281x_Device.h>
#include <DSP281x_Examples.h>
//该函数初始化PIE控制寄存器到已知状态
void InitPieCtrl(void)
{
DINT; //禁止全局中断
PieCtrlRegs.PIECRTL.bit.ENPIE = 0; //禁止PIE模块
//清除所有PIE使能寄存器
PieCtrlRegs.PIEIER1.all = 0;
PieCtrlRegs.PIEIER2.all = 0;
PieCtrlRegs.PIEIER3.all = 0;
PieCtrlRegs.PIEIER4.all = 0;
PieCtrlRegs.PIEIER5.all = 0;
PieCtrlRegs.PIEIER6.all = 0;
PieCtrlRegs.PIEIER7.all = 0;
PieCtrlRegs.PIEIER8.all = 0;
PieCtrlRegs.PIEIER9.all = 0;
PieCtrlRegs.PIEIER10.all = 0;
PieCtrlRegs.PIEIER11.all = 0;
PieCtrlRegs.PIEIER12.all = 0;
//清除所有PIE状态寄存器
PieCtrlRegs.PIEIFR1.all = 0;
PieCtrlRegs.PIEIFR2.all = 0;
PieCtrlRegs.PIEIFR3.all = 0;
PieCtrlRegs.PIEIFR4.all = 0;
PieCtrlRegs.PIEIFR5.all = 0;
PieCtrlRegs.PIEIFR6.all = 0;
PieCtrlRegs.PIEIFR7.all = 0;
PieCtrlRegs.PIEIFR8.all = 0;
PieCtrlRegs.PIEIFR9.all = 0;
PieCtrlRegs.PIEIFR10.all = 0;
PieCtrlRegs.PIEIFR11.all = 0;
PieCtrlRegs.PIEIFR12.all = 0;
}
//该函数使能PIE模块和CPU级中断
void EnableInterrupts()
{
PieCtrlRegs.PIECRTL.bit.ENPIE = 1; //使能PIE模块
PieCtrlRegs.PIEACK.all = 0xFFFF; //使用PIE驱动一个脉冲进入CPU
EINT; //使能全局中断
}