TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430 全局中断控制问题

在TI的实例代码中,找到两个函数__enable_interrupt()和__bis_SR_register(GIE),注释说的都是使能全局中断,这两个函数有区别吗?感觉__enable_interrupt()似乎容易出问题

xyz549040622:

__enable_interrupt()比较专一,只是开中断。而_bis_SR_register可带参数,可以置位SR中的其他位。

HG:

功能上是一样的。你看一下反汇编,都是 BIS #8,SR。

主要的区别 __bis_SR_register()除了设置GIE参数外还能传些别的,__enable_interrupt() 只能set GIE。

同理 __disable_interrupt(); DINT; and bic_SR_register(GIE);

m:

回复 HG:

但是我有个程序,使用,__enable_interrupt() 程序不能进中断,但是改成__bis_SR_register(GIE)就没问题了(其他的都没改),这是为什么?

xyz549040622:

回复 m:

看看汇编,是不是两者操作的一样,不应该呀。

灰小子:

回复 xyz549040622:

这种宏定义和编译环境有关系,__enable_interrupt()一般在iar上用

赞(0)
未经允许不得转载:TI中文支持网 » MSP430 全局中断控制问题
分享到: 更多 (0)