OpenEdv-开源电子网

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

设置NVIC分组的问题

[复制链接]

21

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2011-6-30
在线时间
0 小时
发表于 2011-7-3 11:46:46 | 显示全部楼层 |阅读模式

那这个原子的程序,是我想的这样吗?

//设置NVIC分组
//NVIC_Group:NVIC分组 0~4 总共5组
//CHECK OK
//091209
void MY_NVIC_PriorityGroupConfig(u8 NVIC_Group) 
{
 u32 temp,temp1;  
 temp1=(~NVIC_Group)&0x07;//取后三位

原子在这里,把NVIC_Group求反,我就不明白了,

我的理解应该是直接
temp1=NVIC_Group&0x07

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-7-3 12:24:09 | 显示全部楼层
回复【楼主位】Crystal_oscillat:
---------------------------------
你看看权威指南.
你可以按你的意思测试一下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

21

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2011-6-30
在线时间
0 小时
 楼主| 发表于 2011-7-3 12:39:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
给本参考手册吧
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

21

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2011-6-30
在线时间
0 小时
 楼主| 发表于 2011-7-3 15:05:20 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
解释下咯,每次你都搞得我摸索好久。
回复 支持 反对

使用道具 举报

21

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2011-6-30
在线时间
0 小时
 楼主| 发表于 2011-7-3 15:15:11 | 显示全部楼层
#define NVIC_PriorityGroup_0         ((uint32_t)0x700) /* 0 bits for pre-emption priority
                                                          4 bits for subpriority */
#define NVIC_PriorityGroup_1         ((uint32_t)0x600) /* 1 bits for pre-emption priority
                                                          3 bits for subpriority */
#define NVIC_PriorityGroup_2         ((uint32_t)0x500) /* 2 bits for pre-emption priority
                                                          2 bits for subpriority */
#define NVIC_PriorityGroup_3         ((uint32_t)0x400) /* 3 bits for pre-emption priority
                                                          1 bits for subpriority */
#define NVIC_PriorityGroup_4         ((uint32_t)0x300) /* 4 bits for pre-emption priority
                                                          0 bits for subpriority */

在固件库中找到了答案,其实权威指南中说得很好

通过让优先级以MSB 对齐,可以简化程序的跨器件移植。比如,如果一个程序早先在
支持4 位优先级的器件上运行,在移植到只支持3 位优先级的器件后,其功能不受影响。但
若是对齐到LSB,则会使MSB 丢失,导致数值大于7 的低优先级一下子升高了,甚至会反转
小于等于7 的高优先级。如,8 号优先级因为损失了MSB,现在反而变成0 号了!

发现参考固件库是个不错的方法。
回复 支持 反对

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2013-2-26 20:31:27 | 显示全部楼层
在ST的例程中怎么没有发现NVIC的分组设置呢???
天道酬勤
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 12:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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