您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]BF531中断疑问
本帖共有709个阅读者
发表帖子 发表投票 回复主题
[求助]BF531中断疑问
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF531中断疑问

大家好,想问下BF531是否有软件触发中断的功能?如程序运行中,控制触发PF口产生中断?如果有,要如何操作呢?在硬件手册中好像找不到相关内容。谢谢!



「该帖子被 blackfin 在 2011-10-17 14:33:15 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/10/17 14:32:29
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
blackfin没有这个功能,如果想使用软件中断,可以使用定时器中断,由定时器触发中断进行操作,没必要一定是IO触发的中断才能处理。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2011/10/17 20:41:12
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
版主是说,在软件要触发中断时,配置定时器计数值为1,然后开定时器的中断,这样产生定时器中断?对吗?

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

可以这么做,但我不明白为什么非要触发中断,中断后的操作还需要交给核,直接用核在一定条件下进行处理不是更好?


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2011/10/19 11:48:06
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

其实问题是这样的,有一外部中断(硬件产生),其中断处理程序为:
EventInterruptHandler()
{
    //中断处理内容
}
同时在程序运行中,当达到一定要求后,需执行一遍中断处理内容,如果有软件中断的话,只要执一下对应中断就可以了。

如果没有,按版主Andy的说法是不是可以改为:
EventInterruptHandler()
{
    EventHandler();
}


void EventHandler(void)
{
    //关中断
    
    //中断处理内容

    //开中断
}
然后当程序运行达到要求后,在软件中调用EventHandler()函数呢?谢谢!


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/10/20 21:16:02
ppsca(论坛新手)
ppsca
头衔:社区公民
帮派:无帮无派
帖数:43
金钱:305
积分:41
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

可以开一个定时器,每隔一段时间用定时器来判断产生内部中断条件是否满足,如果满足,就在定时器中执行内部中断所需的功能,如果不满足,则跳出,同样可以实现你软件中断的功能,而且不影响你外部中断。


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/10/20 23:42:11
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154562 Call, 1 Queries, Processed in 0.015625 second(s),