您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 关于中断的问题
本帖共有592个阅读者
发表帖子 发表投票 回复主题
关于中断的问题
taotaost(论坛新手)
taotaost
头衔:社区公民
帮派:无帮无派
帖数:16
金钱:244
积分:24
注册时间:2012/3/17
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于中断的问题

看了(手把手教你使用ADI DSP)第三集:ADI_DSP外设-GPIO、中断,在讲中断时提到当PF管脚被拉低时产生中断,并且在处理中断后要对*pFIO_FLAG_C写"1"来清除中断。

我不明白的是,对*pFIO_FLAG_C写"1"将要清除相应的管脚,使得管脚的值为0,那么管脚不就又被拉低了,不就又产生中断了?

大侠帮忙解释一下,万分感谢!!!


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/3/24 20:46:04
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

在PF管脚作为输出时,向*pFIO_FLAG_C写"1"则会将管脚电平拉到0。

当PF管脚设置为中断输入时,不管是高电平触发还是低电平触发,其管脚的值将不再代表电平。而是代表中断标志。

你可以打开VDSP->寄存器->533外部寄存器->PF寄存器,然后连续运行代码,在不进中断时,你停下代码看一下PF寄存器中的值,如果没有中断时,其值是0,而实际上我们的接口是上拉的,状态是1。

你在中断中打个断点,然后触发中断,进入中断后,则触发中断的PF寄存器值则变为1,实际上该脚电平为0.

所以我们要用*pFIO_FLAG_C写"1"来清除中断标志,而并非设置接口为0.


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/3/24 22:02:10
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159380 Call, 1 Queries, Processed in 0.031250 second(s),