_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 · TA获得超过627个赞
知道小有建树答主
回答量:300
采纳率:50%
帮助的人:258万
展开全部

_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()的宏定义


如有不懂请追问~

leipole
2024-10-28 广告
JUK 10-DREHSI是上海雷普电气有限公司生产的一种高质量接线端子。它执行IEC60947-7-1标准,额定电压达800V,额定电流为10A,适用于刚性及柔性导线范围在0.5-16mm之间。该产品具有优良的阻燃性能(V0级),设计紧凑... 点击进入详情页
本回答由leipole提供
hwk612167
2016-02-18 · TA获得超过1322个赞
知道小有建树答主
回答量:281
采纳率:100%
帮助的人:316万
展开全部
前者同时完成2个设置,进入LPM0模式同时使能全局中断。
后者只是使能了全局中断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈磊磊磊
2013-05-26 · 超过39用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:113万
展开全部
在不同的版本上略有差异,其实你可以这样写BIS_SR(GIE),就能完全规避这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式