|
为什么进不了中断,还请前辈指点一二。最好能讲讲三级中断。
/*****************头文件********************/
#include "DSP281x_Device.h"
#include "System.h"
void Init_LED()
{
EALLOW;
GpioMuxRegs.GPADIR.bit.GPIOA0 = 1;
EDIS;
GpioDataRegs.GPADAT.bit.GPIOA0 = 0;
}
void Inin_XINT1()
{
EALLOW;
GpioMuxRegs.GPEMUX.bit.XINT1_XBIO_GPIOE0 =1; //配置复用引脚
PieCtrlRegs.PIEIER1.bit.INTx4 = 1;
PieVectTable.XINT1 = &XINT1_ISR;
XIntruptRegs.XINT1CR.bit.POLARITY = 0; //配置外部中断为上升沿触发
XIntruptRegs.XINT1CR.bit.ENABLE = 1; //使能外部中断
// PieVectTable.PIE4_RESERVED
EDIS;
IER|= M_INT1;
EINT;
}
void main()
{
InitSysCtrl(); // 系统初始化子程序,在DSP28_sysctrl.c中
Init_LED(); //使能A0为LED控制端口
Inin_XINT1();
while(1);
}
中断程序
interrupt void XINT1_ISR(void)
{
// Insert ISR Code here
// To receive more interrupts from this PIE group, acknowledge this interrupt
// PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
//asm (" ESTOP0");
//for(;;);
GpioDataRegs.GPATOGGLE.bit.GPIOA0 = 1;
// PieCtrl.PIEACK.all=0xffff; //清除PIE中断应答位
PieCtrlRegs.PIEACK.all = 0xffff;
}
|
|