_BIS_SR(LPM0_bits+GIE)和_EINT()有什么区别 10

除去_BIS_SR(LPM0_bits+GIE能够起到进入LPM0低功耗模式之外,在开总中断这个作用上两者有什么差别?我在之前写的一个程序里想开总中断用了_EINT()发... 除去_BIS_SR(LPM0_bits+GIE能够起到进入LPM0低功耗模式之外,在开总中断这个作用上两者有什么差别?我在之前写的一个程序里想开总中断用了_EINT()发现不能正常工作,改成_BIS_SR(LPM0_bits+GIE)就行了,一直百思不得其解,希望各位高手不吝赐教 展开
 我来答
古尔格
2016-03-02
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

_BIS_SR(LPM0_bits+GIE)和_EINT()的区别在于

前者在开启中断之外,还让CPU休眠了。后者则只是开启了中断。


__bis_SR_register(x) 这句话的意思是set SR寄存器中的某些位,也就是让这些功能位使能


#else /* Begin #defines for C */
#define LPM0_bits              (CPUOFF)
#define LPM1_bits              (SCG0+CPUOFF)
#define LPM2_bits              (SCG1+CPUOFF)
#define LPM3_bits              (SCG1+SCG0+CPUOFF)
#define LPM4_bits              (SCG1+SCG0+OSCOFF+CPUOFF)

这是库中的定义,显然LPM0_bits让CPU休眠了

GIE则是和__enable_interrupts()等效,使能中断。

#define _EINT()                         __enable_interrupt()

EINT()是_enable_interrupts()的宏定义


如有不懂请追问~

厦门君韦信息技术
2024-11-18 广告
厦门君韦信息技术有限公司成立于2015年,是一家致力于提供专业服务的电子元件分销商,具有业界先进的质量和可靠性、强大的搜索供应实力、专业的服务能力。厦门君韦主要深耕于图像识别技术研究与开发,同时助推于通信、工控、电力、汽车等行业客户的供应链... 点击进入详情页
本回答由厦门君韦信息技术提供
hwk612167
2016-02-18
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
前者同时完成2个设置,进入LPM0模式同时使能全局中断。
后者只是使能了全局中断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈磊磊磊
2013-05-26
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
在不同的版本上略有差异,其实你可以这样写BIS_SR(GIE),就能完全规避这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式