各位老师好!

[复制链接]
3272|11
 楼主| 孤星119 发表于 2009-4-7 10:20 | 显示全部楼层 |阅读模式
我刚开始学习ARM,有个问题想请教各位,我不知道使用PIO普通输入引脚的电平变化中断,需要注意哪些,我用的是AT91SAM7A3,当用评估板测试PIO中断功能时,当中断类型摄为边沿中断时,引脚电平无论如何变化都无法进入中断断点(用的是自带的样例程序,引脚配置为外设使用时,中断都能正常,说明硬件无问题).当设为电平变化时,一复位后一直进入中断.请问会是什么原因?谢谢各位.
computer00 发表于 2009-4-7 10:46 | 显示全部楼层

时钟初始化是否正确?

  
 楼主| 孤星119 发表于 2009-4-7 12:32 | 显示全部楼层

回:computer00

应该正确,我核对过几便了,如果不正确的话,那此引脚分配给外设使用时,中断功能都好的啊,难道当外设使用时,不用配置时钟么?谢谢.
阿南 发表于 2009-4-7 20:59 | 显示全部楼层

查看它的中断标志位是否已经产生,中断是否被屏蔽等

  
古道热肠 发表于 2009-4-8 11:26 | 显示全部楼层

可以用软件仿真看看是否配置不当

应该不会一直进中断的.
computer00 发表于 2009-4-8 11:30 | 显示全部楼层

IO时钟使能没?输入要使能IO时钟呀

  
 楼主| 孤星119 发表于 2009-4-8 14:43 | 显示全部楼层

各位前辈真是热心肠啊.

我贴上我的程序各位看看:<br />//PIO时钟配置<br />AT91F_PMC_EnablePeriphClock&nbsp;(&nbsp;AT91C_BASE_PMC,1&lt&ltAT91C_ID_PIOB&nbsp;);<br />//设置SW4对应引脚为输入使能,并为PIO控制器控制<br />AT91F_PIO_CfgInput(AT91C_BASE_PIOB,SW4_MASK);&nbsp;<br />//初始化中断控制寄存器:中断ID:PIOA。优先级:6,中断类型:电平敏感,中断调用函数为:pio_c_irq_handler<br />AT91F_AIC_ConfigureIt&nbsp;(&nbsp;pAic,&nbsp;AT91C_ID_PIOB,&nbsp;PIO_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL,&nbsp;pio_c_irq_handler);<br />//使能PIOA&nbsp;I/O口SW4_MASK(PB9&nbsp;)引脚的输入变化中断<br />AT91F_PIO_InterruptEnable(AT91C_BASE_PIOB,SW4_MASK);<br />//使能PIOA中断<br />AT91F_AIC_EnableIt&nbsp;(pAic,&nbsp;AT91C_ID_PIOB);<br />各位先看看我这些步骤是否正确.
computer00 发表于 2009-4-8 15:08 | 显示全部楼层

怎么你注释是PA口,程序又是PB呢?

还有中断处理程序中,要有相应的清除中断的操作。
 楼主| 孤星119 发表于 2009-4-8 15:16 | 显示全部楼层

回00,

  
 楼主| 孤星119 发表于 2009-4-8 15:17 | 显示全部楼层

不好意思.

是我修改的时候,注释忘改过来了.处理程序中我有清除标记的.
cuijinyi 发表于 2013-5-24 15:54 | 显示全部楼层
触发方式高电平,
phoenix-l 发表于 2013-5-26 15:50 | 显示全部楼层
帮忙顶起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

689

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部