中断嵌套的问题

[复制链接]
3101|1
 楼主| colaring 发表于 2008-7-15 22:10 | 显示全部楼层 |阅读模式
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
这个懂,是两个优先组的优先级配置,2bit,代表每个组有2位,则优先级由0~3

下面就不明白了!既然PreemptionPriority和SubPriority代表两个不同优先级的组(PreemptionPriority高于SubPriority),那么这个配置中TIM3_IRQ在一个组里面优先级是0,另一个里面优先级是1,怎么是这样???还有例程中两个组全填0,也有全填1的,按理说这个中断仅在PreemptionPriority中填0就是最高了啊(忽略硬件优先级)为啥还要在SubPriority里填个1?

  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure); 

 我不懂的就是:
1.同一个中断在两个组里都配置了优先级有意义么?
2.假设PreemptionPriority组有一个低级中断服务程序在运行,当来了一个本组的高级中断是否可以打断它?同理SubPriority的高级中断能否打断本身的低级中断,PreemptionPriority组是否可以打断SubPriority的中断?
香水城 发表于 2008-7-15 22:20 | 显示全部楼层

楼主的问题已经有人帮你回答过了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

156

帖子

1

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