TI中文支持网
TI专业的中文技术问题搜集分享网站

C6713B 外部中断

GP5 设置为下降沿触发,为什么给上升沿同样可以触发这个中断,EXTPOL寄存器没起作用??

下面是程序,期待专家的解决,谢谢

    *(int *)EMIF_GCTL = 0x00003060;                /* EMIF global control register */
    *(int *)EMIF_CE1 = 0xFFFFFF23;                 /* CE1 – 32-bit operation to 16-bit FLASH asynch access */
    *(int *)EMIF_CE0 = 0xFFFFFF30;                 /* CE0 – SDRAM */
    *(int *)EMIF_CE2 = 0xFFFFFF23;                 /* CE2 – 32-bit asynch on daughterboard */
    *(int *)EMIF_CE3 = 0xFFFFFF23;                 /* CE3 – 32-bit asynch on daughterboard */
    *(int *)EMIF_SDRAMCTL = 0x57117000;         /* SDRAM control register (100 MHz)*/
    *(int *)EMIF_SDRAMTIMING = 0x0000061a;         /* SDRAM Timing register */
   /*———–interrupt setup————*/
   
   IRQ_setVecs(vectors); /* point to the IRQ vector table    */
   IRQ_globalEnable();   /* enable global interrupt request */
   IRQ_nmiEnable();          /* Enable NMI interrupt             */
   /*—–external interrupt initialize—-*/
   IRQ_map(IRQ_EVT_EXTINT4,ExternalInt4Number);
   IRQ_map(IRQ_EVT_EXTINT5,ExternalInt5Number);
   IRQ_map(IRQ_EVT_EXTINT6,ExternalInt6Number);
   IRQ_map(IRQ_EVT_EXTINT7,ExternalInt7Number);
   IRQ_reset(IRQ_EVT_EXTINT4);
   IRQ_reset(IRQ_EVT_EXTINT5);
   IRQ_reset(IRQ_EVT_EXTINT6);
   IRQ_reset(IRQ_EVT_EXTINT7);
   IRQ_enable(IRQ_EVT_EXTINT4);
   IRQ_enable(IRQ_EVT_EXTINT5);
   IRQ_enable(IRQ_EVT_EXTINT6);
   IRQ_enable(IRQ_EVT_EXTINT7);
   *(int *)EXTPOL = 0x00000002;          //下降沿触发外部中断5
   ////////////////////////////////////////*/
   while(1);
}

/*  ————-external interrupt service routine———*/

interrupt void
ExtInt5(void)
{
    IRQ_clear(IRQ_EVT_EXTINT5);        //清中断
    * PCE2=4;                        //测试代码
    return;
}

ha zhang:

GPIO默认是enable,输入方式,我调试时看过寄存器的值

Shine:

回复 ha zhang:

你好,

查一下EXTPOL寄存器有没有写进去? IFR寄存器有没有置1? 外部中断频率为多少?

ha zhang:

回复 Shine:

非常感谢您的回答,

查看寄存器  GPPOL=0x00000020;   //外部中断5 为下降沿方式写入了寄存器

IFR位不好看,因为在线调试时,一旦进入中断,相应位也就立刻清0了;

中断频率很低,外部按键给的中断信号

谢谢,纠结好几天了,不知道哪的原因

Shine:

回复 ha zhang:

"IFR位不好看,因为在线调试时,一旦进入中断,相应位也就立刻清0了;"

你的意思是能进中断服务子程序的?

ha zhang:

回复 Shine:

能进,我外部按键,按下去给GP5 低电平,抬上来按键,给GP5 高电平,

我是这样给信号的,按下去,程序run,进入了中断函数,在run ,程序又回到while(1);把按键抬上来,run,又进了中断函数

无论怎么给信号,每次都能进中断服务函数

ha zhang:

回复 Shine:

非常感谢您不厌其烦的回复,

抖动的问题应该不存在,应为我是按键给的FPGA,由FPGA输出接口送给GP5的,我用FPGA软件的逻辑分析仪抓过这个信号,

没有抖动的;

您能不能贴出一段已经验证过的可行的下降沿触发中断的程序,我在我的板上试试,我的板子上有两块C6713B,都是这个问题,甚是困惑

谢谢

ha zhang:

回复 Shine:

解决了,解决了,好开心,

谢谢TI专家,是毛刺的问题

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » C6713B 外部中断
分享到: 更多 (0)