//#####################################################################
//文件: 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; //使能全局中斷
}