[MCU] 使用GIE=1 开中断的疑问

[复制链接]
 楼主| 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文件去查找
 楼主| zwll 发表于 2021-1-5 23:46 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
ayb_ice 发表于 2021-1-6 15:52 | 显示全部楼层
这是个位屏蔽值而已,就是BIT3,

通过unsigned short __bis_SR_register         (unsigned short mask);操作寄存器
编译器内部操作了
harry__qiu 发表于 2021-1-26 16:49 | 显示全部楼层
SR寄存器是MSP430的CPU寄存器,有对应的汇编指令直接操作,但没法像外设一样通过地址线寻址访问。因此,对C语言编程,提供了intrinsic函数(可以被编译器识别为操作CPU寄存器的汇编代码)来进行SR寄存器的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝

885

主题

11314

帖子

5

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