DSP28335外部中断 XINT3的配置。
GPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断)
GPIO32-GPIO63可选的中断源为XINT3-7。
这是电路原理图的键盘部分
键盘产生下降沿,发到端口,XINT1 用了GPIO12输入到芯片 GPIO48只输出;XINT2用了GPIO13输入,GPIO48只输出;但是XINT3要求用GPIO32-GPIO63。所以此键盘电路不行。
这个链接用定时器解决
DSP28335外部中断配置过程
其实也可以杜邦线跳线连接。比如想用K7触发XINT3。XINT3用GPIO34输入。
XINT3的配置
void EXTI3_Init(void)
{
EALLOW;
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // GPIO input clock
EDIS;
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //相应端口配置为通用IO
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 0; //输入
GpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 1; //输入滤波采样周期为2*1 Tsysclk(系统时钟)
GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 1; //三次采样
GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; //使能内部上拉
EDIS;
EALLOW;
GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34; // XINT3是GPIO14
EDIS;
EALLOW; // 修改被保护的寄存器,修改前应添加EALLOW语句
PieVectTable.XINT3 = &EXTI3_IRQn;// 按住ctrl点击XINT3 会跳转到PIE向量表头文件
EDIS; // EDIS的意思是不允许修改被保护的寄存器
PieCtrlRegs.PIEIER12.bit.INTx1 = 1; // 使能PIE组12的INT5
XIntruptRegs.XINT3CR.bit.POLARITY = 0; // 下降沿触发中断
XIntruptRegs.XINT3CR.bit.ENABLE = 1; // 使能XINT3
IER |= M_INT12; // 使能CPU中断1(INT1)
EINT; // 开全局中断
ERTM;
}
interrupt void EXTI3_IRQn(void)
{
Uint32 i;
for(i=0;i<10000;i++); //键盘消抖动
LED4_TOGGLE;
PieCtrlRegs.PIEACK.bit.ACK1=1;
}
按住ctrl点击“PieVectTable.XINT3 = &EXTI3_IRQn;”中的XINT3 会跳转到PIE向量表头文件
所以是第12组 第1个阵脚,所以
PieCtrlRegs.PIEIER12.bit.INTx1 = 1;
这样就可以在开发板上按k7,调试XINT3的中断了。