您好!
我使用的是 LAUNCHXL-28027板。 SYSCLOCK 为60MHz。
我有三个用于外部中断的输入 GPIO。
-GPIO3-->XINT1:脉宽250ns,持续时间600us
- GPIO5 --> XINT2 (用于 ADCINT1):4MHz,占空比50%
-GPIO4->XINT3:脉宽250ns,持续时间500us
当我运行这个时、XINT3不工作。
但是、如果 GPIO5输入频率低于2MHz、那么 XINT3就会工作。
输入 GPIO 速率低于2MHz?
提前感谢您。
-Jae Yang Park-
===
我的配置为:
//GPIO3、XINT1
void GPIO3_config (void)
{
//设置 GPIO3
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0;// GPIO3 -通用 I/O
GpioCtrlRegs.GPADIR.bit.GPIO3 = 0;// 0:输入、1:输出
GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 0;//限制条件00:同步到 SYSCLK、01:3个采样、10:6个采样、11:异步
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0;//采样周期(n=0xFF)= 510 x Tsysclkout = 510 x 16.67ns = 8.5us、n=1、33.34ns
EDIS;
// GPIO3是 XINT1
EALLOW;
GpioIntRegs.GPIOXINT1SEL.ALL = 3;// XINT1为 GPIO3
EDIS;
//配置 XINT1
XIntertRegs.XINT1CR.bit.Polarity = 0;// 0:下降、1:上升、2:下降、3:两者
XIntertRegs.XINT1CR.bit.ENABLE = 1;//启用 XINT1
}
//GPIO4、XINT3
void GPIO4_config (void)
{
//设置 GPIO4
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0;// GPIO4 -通用 I/O
GpioCtrlRegs.GPADIR.bit.GPIO4 = 0;// 0:输入、1:输出
GpioCtrlRegs.GPAQSEL1.bit.GPIO4 = 0;//限制条件00:同步到 SYSCLK、01:3个采样、10:6个采样、11:异步
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0;//采样周期(n=0xFF)= 510 x Tsysclkout = 510 x 16.67ns = 8.5us
EDIS;
// GPIO4是 XINT3
EALLOW;
GpioIntRegs.GPIOXINT3SEL.ALL = 4;// XINT3为 GPIO4
EDIS;
//配置 XINT3
XIntertRegs.XINT3CR.bit.Polarity = 0;// 0:下降、1:上升、2:下降、3:两者
XIntertRegs.XINT3CR.bit.ENABLE = 1;//启用 XINT3
}
// GPIO5、XINT2
void GPIO5_config (void)
{
//设置 GPIO5
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO5=0;// GPIO5 -通用 I/O
GpioCtrlRegs.GPADIR.bit.GPIO5 = 0;// 0:输入、1:输出
GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 0;//限制条件00:同步到 SYSCLK、01:3个采样、10:6个采样、11:异步
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0;//采样周期(n=0xFF)= 510 x Tsysclkout = 510 x 16.67ns = 8.5us
EDIS;
// GPIO5是 XINT2
EALLOW;
GpioIntRegs.GPIOXINT2SEL.ALL = 5;// XINT2为 GPIO5
EDIS;
//配置 XINT2
XIntertRegs.XINT2CR.bit.Polarity = 0;// 0:下降、1:上升、2:下降、3:两者
XIntertRegs.XINT2CR.bit.ENABLE = 1;//启用 XINT2
}