打印
[MCU]

使用GIE=1 开中断的疑问

[复制链接]
2902|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2021-1-5 23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我自己看手册上说是SR寄存器中的GIE位置1即可
可是库里面并没有SR这个寄存器
只有#define GIE                 (0x0008u)
但是我想写GIE=1 也不对 报错是 必须是modifiable value 这个我倒能理解
所以说只能通过_EINT() 这个函数(据说是_是为了调用汇编??)
不能直接操作 或者说没有途径操作 SR寄存器是么
望大家赐教

使用特权

评论回复

相关帖子

沙发
guoyt| | 2021-1-5 23:34 | 只看该作者
用宏定义的方式不行,采用指定变量地址的方式定义变量,将变量的地址指定为0x08

使用特权

评论回复
板凳
wangpe| | 2021-1-5 23:38 | 只看该作者
不管用哪种单片机,只要认真看数据手册就没有不知道的。

使用特权

评论回复
地板
wenfen| | 2021-1-5 23:42 | 只看该作者
在编译器的include文件去查找

使用特权

评论回复
5
zwll|  楼主 | 2021-1-5 23:46 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
6
ayb_ice| | 2021-1-6 15:52 | 只看该作者
这是个位屏蔽值而已,就是BIT3,

通过unsigned short __bis_SR_register         (unsigned short mask);操作寄存器
编译器内部操作了

使用特权

评论回复
7
harry__qiu| | 2021-1-26 16:49 | 只看该作者
SR寄存器是MSP430的CPU寄存器,有对应的汇编指令直接操作,但没法像外设一样通过地址线寻址访问。因此,对C语言编程,提供了intrinsic函数(可以被编译器识别为操作CPU寄存器的汇编代码)来进行SR寄存器的操作。

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝