www.pudn.com > SCIB_RS232.rar > DSP281x_PieCtrl.c


//########################################################################### 
// 
// FILE:	DSP281x_PieCtrl.c 
// 
// TITLE:	DSP281x Device PIE Control Register Initialization Functions. 
// 
//########################################################################### 
 
#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 Interrupts at the CPU level: 
    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; 
 
	// 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 and CPU interrupts 
// 
void EnableInterrupts() 
{ 
 
    //Enable the PIE 
     
    PieCtrlRegs.PIECRTL.bit.ENPIE = 1;   // Enable the PIE block 
    PieCtrlRegs.PIEIER1.bit.INTx4=1;     //XINT1 
    PieCtrlRegs.PIEIER1.bit.INTx7=1;     //TIMER0 
    PieCtrlRegs.PIEIER9.bit.INTx1=1;     //SCIA_RX 
    PieCtrlRegs.PIEIER9.bit.INTx2=1;     //SCIA_TX 
    PieCtrlRegs.PIEIER9.bit.INTx3=1;     //SCIB_RX 
    PieCtrlRegs.PIEIER9.bit.INTx4=1;     //SCIB_TX 
    PieCtrlRegs.PIEIER9.bit.INTx5=1;     //EAN0INT 
    PieCtrlRegs.PIEIER9.bit.INTx6=1;     //EAN1INT 
    IER = 0x0101;    
   		 
	//Enables PIE to drive a pulse into the CPU,write 1 to clear 0 
	PieCtrlRegs.PIEACK.all = 0xFFFF;              
	 
	//Enable Interrupts at the CPU level  
    EINT; 
     
} 
 
 
//=========================================================================== 
// No more. 
//===========================================================================