_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)就行了,一直百思不得其解,希望各位高手不吝赐教
展开
3个回答
展开全部
_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 广告
2024-11-18 广告
厦门君韦信息技术有限公司成立于2015年,是一家致力于提供专业服务的电子元件分销商,具有业界先进的质量和可靠性、强大的搜索供应实力、专业的服务能力。厦门君韦主要深耕于图像识别技术研究与开发,同时助推于通信、工控、电力、汽车等行业客户的供应链...
点击进入详情页
本回答由厦门君韦信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询