📄 dsp281x_piectrl.c
字号:
//###########################################################################
//
// FILE: DSP281x_PieCtrl.c
// TITLE: DSP281x Device PIE Control Register Initialization Functions.
// WRITER: ZHANG X.L.;
//
//###########################################################################
#include "DSP281x_Device.h" // DSP281x Headerfile Include File
#include "DSP281x_Examples.h" // DSP281x Examples Include File
//---------------------------------------------------------------------------
// InitPieCtrl:
//---------------------------------------------------------------------------
// This function initializes the PIE control registers to a known state.
//
void InitPieCtrl(void)
{
// Disable global Interrupts :
DINT;
// Disable the PIE
PieCtrlRegs.PIECRTL.bit.ENPIE = 0;
// Clear all PIEIER registers:
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;
//Wait 5 cycles;
//asm(" RPT #5 || NOP ");
// Clear all PIEIFR registers:
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;
}
//---------------------------------------------------------------------------
// EnableInterrupts:
//---------------------------------------------------------------------------
// This function enables the PIE module ,the CPU interrupts and the other interrupts needed
//
void EnableInterrupts()
{
// Enable the PIE
PieCtrlRegs.PIECRTL.bit.ENPIE = 1;
// Enable global Interrupts and higher priority real-time debug events:
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
PieCtrlRegs.PIEACK.all = 0xFFFF; // Enables PIE to drive a pulse into the CPU
// PieCtrlRegs.PIEIER1.bit.INTx4 = 1; // XINT1 ;
// PieCtrlRegs.PIEIER1.bit.INTx5 = 1; // XINT2 ;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1; //CPU Timer0;
IER |= 0x001; // Enable CPU INT 1;
// PieCtrlRegs.PIEIER6.bit.INTx1=1; // SPIRXINTA:
// PieCtrlRegs.PIEIER6.bit.INTx2=1; // SPITXINTA;
IER |= 0x20; // Enable CPU INT6;
PieCtrlRegs.PIEIER9.bit.INTx1 = 1; // Scia RXD;
// PieCtrlRegs.PIEIER9.bit.INTx2 = 1; // Scia TXD;
PieCtrlRegs.PIEIER9.bit.INTx3 = 1; // Scib RXD;
// PieCtrlRegs.PIEIER9.bit.INTx4 = 1; // Scib TXD;
IER |= 0x100;// Enable CPU INT 9 ;
}
//---------------------------------------------------------------------------
//clear the PIEIFR bit without executing the normal service routine
//---------------------------------------------------------------------------
/*extern PINT EMPTY_ISR;
void ClearPIEIFR(PINT CPIEI)
{
PINT SAPIEISR;
EALLOW;
SAPIEISR=CPIEI;
CPIEI=EMPTY_ISR;
asm(" RPT #6 || NOP");
CPIEI=SAPIEISR;
EDIS;
}*/
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -