库函数中,注册一个中断服务函数,用途是什么

慢慢来   2011-2-17 09:06 楼主
经常会见到**IntRegister( ) 这种库函数,想知道它在什么地方用或者它的优点。

回复评论 (7)

回复

我想以下一段话多少会对你有所启发:
中断控制器API的主要功能是管理NVIC使用的中断向量表来分派中断请求。注册中断处理程序是一件简单的事情,就是将处理程序地址插入到表中。默认地,表内充满了永远循环执行的内部处理程序的指针;当没有已注册的中断处理程序对中断进行处理时,就会出现一个中断错误。因此,中断源应该在处理程序注册完之后被使能,中断源应当在处理程序注销前被禁止。中断处理程序用IntRegister()和IntUnregister()来管理。
每个中断源可以通过IntEnable()和IntDisable()来单独使能和禁止。处理器中断可以通过IntMasterEnable()和IntMasterDisable()来使能和禁止;这并不会影响单个中断的使能状态。处理器中断的屏蔽可以作为一个简单又重要的部分被使用(当处理器中断被禁止时只有NMI能中断处理器),尽管这会对中断响应时间产生不利的影响。
如果还有什么想法,我们可以再交流.
点赞  2011-2-17 21:06

回复 沙发 wpj1018 的帖子

非常感谢,注册中断函数也相当于用程序修改在Startup中断向量吧?,我经常手工去修改
点赞  2011-2-18 11:09

回复 板凳 慢慢来 的帖子

startup中的是初始状态下的中断向量表,中断向量表的内容可以在程序中修改,也就是用IntRegister,IntUnregister函数来修改。如果某个中断的中断服务程序是固定不变的,修改startup就可以了。
点赞  2011-2-21 23:11
很受用
点赞  2012-2-23 10:36
这也是一直困扰我的问题,谢谢了
点赞  2014-7-25 11:14
学习了,感谢楼上的各位啦
点赞  2014-7-27 10:50
引用: wpj1018 发表于 2011-2-17 21:06
我想以下一段话多少会对你有所启发:
中断控制器API的主要功能是管理NVIC使用的中断向量表来分派中断请求。 ...

你有这样方式实现IO中断的代码或帖子分享吗?自己的总也不能响应中断。反复检查过的。
点赞  2015-7-11 13:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复