This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
hii all,
我开始在CCS V6上使用C28x picolo F2.8027万自定义板,我在这里尝试启用外部中断,但只对ISR_interupt处理程序进行一次控制,如果我要再转到ISR一次,我必须重新启动控制器。即, 我意识到,上拉必须启用该特定引脚(此处为GPIO0)。
启用上拉寄存器后,当我将GPIO0引脚连接到3.3V源时,中断甚至不会产生一次,我正在使用controlSUITE的示例代码。
下面是我的附加代码,
Void主(void)
{
InitSysCtrl();
色调;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectorTable();
EALLOW;
PieVectorTable.XINT1 =&XINT1_ISR;
EDIS
PieCtrlRegs.PIECTRL.bit.ENPIE =1;//启用PIE块
PieCtrlRegs.PIEIER1.bit.INTx4 =1;//启用pie gropu 1 INT4
IER || M_INT1;//启用CPU INT1
EINT;//启用全局中断
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;// GPIOPullup
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;// GPIO
gpioCtrlRegs.GPADIR.bit.GPIO0 = 0;//输入
GpioCtrlRegs.GPAQSEL1.bit.GPIO0 = 0;// XINT1仅同步到SYSCLKOUT
EDIS;
EALLOW;
GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 0;// XINT1为GPIO0
EDIS;
XIntruptRegs.XINT1CR.bit.polarity = 0;//下降边缘中断
XIntruptRegs.XINT1CR.bit.enable =1;//启用XINT1
for (;;);
}
中断无效XINT1_ISR(void)
{
Xint1Count++;
PieCtrlRegs.PIEACG.ALL = PIEACK_GROUP1;
}
----------------------------------
请让我摆脱这个问题,
提前感谢。
此致,
Narasimha
您好,Narasimha,
请注意,外部中断功能是边缘触发的(与级别触发相反)。 根据您显示的软件,在GPIO00转化为低电平之前,中断不会触发(这可能不会发生)。
===
根据您尝试执行的操作,两个额外的注释可能会对您有所帮助:
在外部中断内部,您可以读取引脚的值(通过查看GPADAT),并选择仅在GPIO恢复高电平时清除中断。
或者,如果您要查找的是来自外部源的电平触发中断,则Trip-Zone子模块的中断将为您提供一个很好的选择。
谢谢!
Brett