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.
工具与软件:
尊敬的团队:
我有 TMS320F28335、想要在 GPIO12、GPIO13和 GPIO16上配置外部中断 。
GPIO12和 GPIO13正常工作、但 GPIO16不工作。
下面是我的配置、请告诉我缺少什么配置。
此致、
Dipak
/** * @brief: External GPIO Interrupt ISR * @param[in] * @param[out] */ __interrupt void vGpioIntr1ISR(void) { if(++u16Int1counter>2000) { GpioDataRegs.GPBTOGGLE.bit.GPIO36 = 1; u16Int1counter= 0; } PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } /** * @brief: External GPIO Interrupt ISR * @param[in] * @param[out] */ __interrupt void vGpioIntr2ISR(void) { if(++u16Int2counter>2000) { GpioDataRegs.GPBTOGGLE.bit.GPIO36 = 1; u16Int2counter= 0; } PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } /** * @brief: External GPIO Interrupt ISR * @param[in] * @param[out] */ __interrupt void vGpioIntr3ISR(void) { if(++u16Int3counter>100) { GpioDataRegs.GPBTOGGLE.bit.GPIO50 = 1; u16Int3counter= 0; } PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; } void vInitXInterruptConfig(void) { //============================================= External Interrupt ============================================================================================== // External Interuupt //dsp_pwm_rx1 : GPIO12 //dsp_pwm_rx2: GPIO13 //dsp_pwm_rx3: GPIO16 EALLOW; PieVectTable.XINT1 = &vGpioIntr1ISR;// register ISR in interrupt vector table PieVectTable.XINT2 = &vGpioIntr2ISR; PieVectTable.XINT3 = &vGpioIntr3ISR; EDIS; PieCtrlRegs.PIECTRL.bit.ENPIE = 1;// Enable PIE block PieCtrlRegs.PIEIER1.bit.INTx4 = 1;// Enable PIE Group 1 INT4 PieCtrlRegs.PIEIER1.bit.INTx5 = 1;// Enable PIE Group 1 INT5 PieCtrlRegs.PIEIER1.bit.INTx6 = 1;// Enable PIE Group 1 INT6 IER |= M_INT1; // Enable CPU interrupt 1 EINT; // Enable Global Interrupt // // GPIO12, GPIO13 and GPIO16 are inputs // EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0; GpioCtrlRegs.GPADIR.bit.GPIO12 = 0; GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 0; //Xint1 Synch to SYSCLKOUT only GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 0; GpioCtrlRegs.GPADIR.bit.GPIO13 = 0; GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 0; GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0; GpioCtrlRegs.GPADIR.bit.GPIO16 = 0; GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 0; // // Each sampling window is 510*SYSCLKOUT // GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = QUAL_PERIOD_CONFIG;//Each Sample window is 510*SYSCLKOUT EDIS; EALLOW; GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12; //tag XINT1 interrupt with GPIO12 GpioIntRegs.GPIOXINT2SEL.bit.GPIOSEL = 13; //tag XINT2 interrupt with GPIO13 GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 16; //tag XINT3 interrupt with GPIO16 EDIS; XIntruptRegs.XINT1CR.bit.POLARITY = 1;//Detect interrupt on rising edge of GPIO12 XIntruptRegs.XINT2CR.bit.POLARITY = 1;//Detect interrupt on rising edge of GPIO13 XIntruptRegs.XINT3CR.bit.POLARITY = 1;//Detect interrupt on rising edge of GPIO16 XIntruptRegs.XINT1CR.bit.ENABLE = 1; //Enable XINT1 XIntruptRegs.XINT2CR.bit.ENABLE = 1; //Enable XINT2 XIntruptRegs.XINT3CR.bit.ENABLE = 1; //Enable XINT3 }
尊敬的 Vishal:
请查看 c2000ware 示例: Example_2833xExternalInterrupt 以获取参考代码
谢谢
Prarthan、您好!
感谢您的答复!
我已经回顾了这个示例并成功实现了 GPIO12和 GPIO13的中断、它们运行正常。
但是、我会遇到 GPIO16的中断问题。 如果您能查看我之前提供的代码、并告诉我是否存在配置错误或我是否可能遗漏了内容、我将不胜感激。
感谢您的帮助。
此致、
Dipak
尊敬的 Dipak:
配置看起来还可以、除了:QUALPRD0只用于 GPIO0-7、而使用的是 GPIO12、13和16。
您能用 GPIO12或 GPIO13尝试使用 XINT 吗?看看这是否适合您。
然后、你还可以分配 GPIO16 XINT1、看看这是否对你有用
谢谢
您好、普拉坦:
我很困惑、能否请告诉我 GPIO12、13和16的代码[GPIO12和13正常工作、但16不工作-我已经发送了代码、请看一下]。
-Dipak
您好、普拉坦:
您能验证一下我的逻辑吗?您能给我分享同样的代码吗?
-Dipak
尊敬的 Dipak:
我需要一些时间才能找到电路板并检查代码。
请在一周结束前回复。
谢谢
Prarthan、您好!
好的,谢谢你的答复!
-Dipak
Prarthan、您好!
有什么更新对我来说吗?
-迪帕克
Prarthan、您好!
有什么更新对我来说吗?
-Dipak
大家好、团队成员:
您能否确认是否可以解决上述问题?
这是一段很长的时间,我仍然没有收到答案。 请尽早提供更新。
此致、
Dipak
您好、普拉坦:
对延迟响应深表歉意。
我很不舒服,不能更早地回复。
我已经查看了代码、你建议可以为外部中断3至7配置 GPIO 32至63、对吗?
但是、在我的电路板设计中、我使用了 GPIO 16来实现外部中断。 根据此设置、为实现此目的配置 GPIO 16的理想方法是什么?
此致、
Dipak
GPIO 32到63可以配置为外部中断3到7、正确吗?
这就是 MCU 的设计方式
[报价 userid="512045" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1433424/tms320f28335-gpio16_external-interrupt-is-not-working/5613828 #5613828"]我使用 GPIO 16作为外部中断。您可以仅将 GPIO16与 XINT1-2实例配合使用
谢谢