打印

NVIC优先级把我的头都搞大了,

[复制链接]
3399|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wqb202|  楼主 | 2008-4-11 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
vi, ic
请哪位大侠能详细讲解一下吗?
沙发
香水城| | 2008-4-11 22:28 | 只看该作者

简单地说:要实现中断嵌套使用组,不需嵌套则用组内优先

也可以混用!

使用特权

评论回复
板凳
wqb202|  楼主 | 2008-4-11 22:31 | 只看该作者

我只知道中断优先级,可为什么有组优先级,子优先级之分

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); 
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
以上三句各是什么意思呀?

使用特权

评论回复
地板
香水城| | 2008-4-11 22:33 | 只看该作者

楼主还是说说你对中断优先级和中断嵌套的理解

也许你不知道中断嵌套的概念。

使用特权

评论回复
5
wqb202|  楼主 | 2008-4-11 22:42 | 只看该作者

我只知道优先级,不懂中断嵌套,

使用特权

评论回复
6
香水城| | 2008-4-11 22:58 | 只看该作者

那么你去研究一下中断嵌套,你的问题也就解决了

^_^

使用特权

评论回复
7
wqb202|  楼主 | 2008-4-11 23:04 | 只看该作者

看来看版主觉的问题太简单了!唉!

说说我的理解对不对,
设有两个中断,A、B。

中断优先级:当A、B中断同时产生时,将先执行A。但是当正在执行B时,A不能打断B,等B执行完成后再执行A。

中断嵌套:当A、B中断同时产生时,将先执行A。但是当正在执行B时,A将打断B的程序,执行A,执行完成后再继续执行B,

使用特权

评论回复
8
xwj| | 2008-4-11 23:09 | 只看该作者

嗯.... 还好不是把肚子搞大了...

使用特权

评论回复
9
香水城| | 2008-4-12 08:37 | 只看该作者

楼主对中断优先级和中断嵌套的理解是对的

好的,这就有了基础。

设想一下有4个中断源A B C D,要求:
  1)D可以中断B或C,反之不行
  2)B或C可以中断A,反之不行
  3)B和C不能互相嵌套,但B的中断优先级比C高
  4)A不可以中断B、C或D

你再结合我在2楼给的原则想想,这样的需求如何才能实现?


这里我找到一个旧帖,是一个很好的帖:我的学习心得--关于STM32的NVIC

使用特权

评论回复
10
wqb202|  楼主 | 2008-4-12 18:41 | 只看该作者

那总共有4位设定位该怎么理解,

我的认为:
0位抢占优先级,4位子优先级:设置为16级子优先级,不使用抢占式优先级;
1位抢占优先级,3位子优先级:设置为8级子优先级,2级抢占式优先级;
2位抢占优先级,2位子优先级:设置为4级子优先级,4级抢占式优先级;
3位抢占优先级,1位子优先级:设置为2级子优先级,8级抢占式优先级;
4位抢占优先级,0位子优先级:设置为不使用子优先级,16级抢占式优先级;

是这样吗?

使用特权

评论回复
11
香水城| | 2008-4-12 18:47 | 只看该作者

10楼的理解正确

你已经明白了,现在你的头还大吗?哈哈~~~~~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

57

帖子

0

粉丝