打印
[技术问答]

中断优先级的设置

[复制链接]
1340|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 man2man 于 2016-4-8 10:30 编辑

在做mini51程序时用了一个timer1一个EXIT1想让tmr1的优先级高一点,查文档发现:

Exit1级别为3,高于TMR1

只能修改优先级了,查BSP没有相关说明,只能自己来了
第一步 查技术手册发现与中断优先级相关REG如下

要修改IRQ3和IRQ9对应的值,查看发现在寄器中用2bit来设置4级优先级

直接操作寄存器有点麻烦,在BSP中NVIC,发现以下函数


__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
这个就是来设置优先级的了吧
查函数代码,发现是设置NVIC->IP,反查

IP对就偏移地址0x300,结合上面的NVIC_IPR0(SCS_BA+0x400) ,差0x100,再细看,NVIC_ISER(SCS_BA+0x100)
这不0x100就对上了,说明正好是这个
得到解决方法
NVIC_SetPriority(EINT1_IRQn,1);
NVIC_SetPriority(TMR1_IRQn,0);

附上IRQn_Type的定义


完成
看来学习时要动一下脑子

4.png (16.87 KB )

4.png
沙发
gejigeji521| | 2016-4-8 21:19 | 只看该作者
没想到mini51竟然还可以配置中断优先级。

使用特权

评论回复
板凳
E-Kaia| | 2016-4-8 22:25 | 只看该作者
对于任何一款单片机来讲都可以配置中断优先级吧

使用特权

评论回复
地板
捉虫天师| | 2016-4-9 23:36 | 只看该作者
通过改变优先级,就可以实现目的性的重要性配置。

使用特权

评论回复
5
Roderman_z| | 2016-4-11 11:11 | 只看该作者
一个是外部中断优先级,一个是内部中断优先级,好像不同吧

使用特权

评论回复
6
man2man|  楼主 | 2016-4-12 08:57 | 只看该作者
不明白啥内部中断,外部中断,mini51支持异常和中断,部分异常和所有中断可以设定为4级优先级,这个可以看说明书

使用特权

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

本版积分规则

6

主题

57

帖子

1

粉丝