请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
您好,TI:
我想在另一个外部中断(XINT3)内设置两个外部中断(XINT1和XINT2),它是否有效?
是否有任何关于如何进行此类设置的文档?
我还遇到了XINT3的设置问题, 不知怎么的,XINT3 ISR功能即使通过我向其应用信号也没有被触发。
XIN2_ISR和XINT1_ISR工作正常,XINT3_ISR的设置与XINT1和XINT2完全相同,但它只是不起作用。 我可能错过了一些东西。 请帮助并查看我的GPIO设置。
以下是基于ControlSuit ExternalInterrupts示例的我的以下设置:
硬件:F2.8055万
中断无效xint1WR_ISR(void); 中断无效xint2RD_ISR(void); 中断无效xint3CS_ISR(void);
//此文件中找到ISR函数。 EALLOW; //需要写入EALLOW保护寄存器 PieVectorTable.XINT1 =&xint1WR_ISR; PieVectorTable.XINT2 =&xint2RD_ISR; PieVectorTable.XINT3 =&xint3CS_counters; EDIS;//需要禁用写入到Eint1W_ISR的寄存器; XINCount = 0 //计数XINT2中断 Xint3CS_Count =0;//计数XINT3中断
//在PIE中启用XINT1,XINT2和XINT3:组1,12中断4,5和1 //启用连接到WAKEINT的INT1: PieCtrlRegs.PIECTRL.bit.ENPIE = 1; //启用PIE块 PieCtrlRegs.PIEIER1.bit.INTx4 =1; //启用PIE组1 INT4 PieCtrlRegs.PIEIER1.bit.INTx5 =1; //启用PIE组1 INT5 PieCtrlRegs.PIEIER12.bit.INTx1 =1; //启用PIE组12 INT1 IER |= M_INT1; //启用CPU INT1 EINT; //启用全局中断
// GPIO8是输入XINT1,GPIO9是输入XINT2,GPIO10是输入XINT3 EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 0; // GPIO8 GpioCtrlRegs.GPADIR.bit.GPIO8 = 0; //输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO8 = 0; //同步到SYSCLOUT GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 0; // GPIO9 GpioCtrlRegs.GPADIR.bit.GPIO9 = 0; //输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO9 = 0; //同步到SYSCLOUT GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0; // GPIO10 GpioCtrlRegs.GPADIR.bit.GPIO10 = 0; //输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO10 = 0; //同步到SYSCLOUT EDIS; // GPIO8是XINT1,GPIO9是XINT2,GPIO10是XINT3 EALLOW; GPIOIntRegs.GPIOXINT1SEL.BIT.GPIOSEL = 8;// XINGPIO8 是GPIO8 GPIOIntRegs.GPXINTR2;GIOSEL/ININT10是 连接的XIN10;GIOSEL. //配置XINT1,XINT2和XINT3 XIntruptRegs.XINT1CR.bit.Polarity =1; //上升边缘中断 XIntruptRegs.XINT2CR.bit.Polarity =1; //上升边缘中断 XIntruptRegs.XINT3CR.bit.Polarity = 0; //下降边缘中断 //启用XINT1,XINT2和XINT3 XIntruptRegs.XINT1CR.bit.enable = 1; //启用XINT1 XIntruptRegs.XINT2CR.bit.enable =1; //启用XINT2 XIntruptRegs.XINT3CR.bit.enable =1; //启用XINT3
中断void xint1WR_ISR(void) { Xint1WR_Count++;// 确认此中断以从组1 中获取更多PIECtrlRegs.PIEACK/ALL = PIEACK_Group1; } ISR void xint2RD_interrupt (void){ Xint2RD_Count+;//组此中断以从组1中获取更多PIEACK_INQ_INQ3+中断= PIE3INQ_INQ_INQ_INACQ#1= P3INQ+ //确认此中断以从组12 PieCtrlRegs.PIEACK.ALL = PIEACK_Group12; }获取更多信息