OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6136|回复: 3

NVIC部分程序的设置问题

[复制链接]

13

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2012-6-30
在线时间
4 小时
发表于 2012-6-30 20:37:31 | 显示全部楼层 |阅读模式
//设置NVIC 
//NVIC_PreemptionPriority:抢占优先级
//NVIC_SubPriority       :响应优先级
//NVIC_Channel           :中断编号
//NVIC_Group             :中断分组 0~4
//注意优先级不能超过设定的组的范围!否则会有意想不到的错误
//组划分:
//组0:0位抢占优先级,4位响应优先级
//组1:1位抢占优先级,3位响应优先级
//组2:2位抢占优先级,2位响应优先级
//组3:3位抢占优先级,1位响应优先级
//组4:4位抢占优先级,0位响应优先级
//NVIC_SubPriority和NVIC_PreemptionPriority的原则是,数值越小,越优先
//CHECK OK
//100329
void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group)  
u32 temp;
u8 IPRADDR=NVIC_Channel/4;  //每组只能存4个,得到组地址 
u8 IPROFFSET=NVIC_Channel%4;//在组内的偏移
IPROFFSET=IPROFFSET*8+4;    //得到偏移的确切位置
MY_NVIC_PriorityGroupConfig(NVIC_Group);//设置分组
temp=NVIC_PreemptionPriority<<(4-NVIC_Group);  
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0x0f;//取低四位

if(NVIC_Channel<32)NVIC->ISER[0]|=1<<NVIC_Channel;//使能中断位(要清除的话,相反操作就OK)
else NVIC->ISER[1]|=1<<(NVIC_Channel-32);    
NVIC->IPR[IPRADDR]|=temp<<IPROFFSET;//设置响应优先级和抢断优先级           
}


temp=NVIC_PreemptionPriority<<(4-NVIC_Group);   
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0x0f;//取低四位
这几句没看懂,如果我把 NVIC_Group = 3, NVIC_PreemptionPriority =1, NVIC_SubPriority =1
temp=NVIC_PreemptionPriority<<(4-NVIC_Group);   //0x0002
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);        //0x0001 | 0x0002 = 0x0003
temp&=0xf;//取低四位                                        //temp=0x0003

temp最后不应该是0x0005,而算出来时0x0003。
求指点,是不是我哪里理解错了啊??谢谢
    
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-7-1 00:39:15 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2012-6-30
在线时间
4 小时
 楼主| 发表于 2012-7-1 08:51:52 | 显示全部楼层
哦,又看了下《M3权威指南》,是我理解错了,对于优先级设置的4bit分配没有分清
谢谢原子了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-2-15
在线时间
0 小时
发表于 2014-3-17 17:02:02 | 显示全部楼层
回复【3楼】koss:
---------------------------------
如何理解,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-13 16:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表