⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsp281x_piectrl.c

📁 代码用于测试dsp2812的硬件功能
💻 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 + -