当前位置:文档之家› MSP430几种常用内置函数解释

MSP430几种常用内置函数解释

几个重要的内联函数(内联函数定义在intrinsics.h中,但是这几个函数使用的时候不需要事先声明该文件头)
①__bic_SR_register();
将CPU中SR寄存器中的某些位清零。

即将括号内的位清零。

例:__bic_SR_register(GIE);//将GIE位清零,即关闭总中断
②__bis_SR_register();
将CPU中SR寄存器中的某些位置1。

即将括号内的位置1。

③__interrupt
放在函数前面,标志中断函数。

下面这段程序是看门狗
WDT的中断服务函数。

WDT_VECTOR为看门狗的中断向量。

举例:
#pragma vector=WDT_VECTOR
__interrupt void WatchDog(void)
{…}
④__monitor
放在函数前面,功能是声明当这一函数执行的时候自动关闭中断。

应该尽量缩短这样的函数,否则,中断事件无法得到及时的响
应。

⑤__bic_SR_register_on_exit();
功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位清0.
⑥__bis_SR_register_on_exit();
功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位置1.
⑦__no_init
放在全局变量前面,功能是使程序启动时不为变量赋初值
⑧__disable_interrupt
关闭总中断
另外一个相同作用的表达为:_DINT()
⑨__enable_interrupt
开启总中断
另外一个相同作用的表达为:_EINT()
⑩__even_in_range(,);
常被用在多源中断的查询中,如switch(__even_in_range(TAIV,1 0)
意思是:只有在TAIV的值是在0--10内的偶数时才会执行
switch函数内的语句。

其作用是提高switch语句的效率
A._NOP()
空操作,等价于__no_operation指令
B.__get_SP_register(void)
功能:返回堆栈指针寄存器SP的值。

C.__get_SR_register_on_exit(void)
功能:用于一个中断函数或者不可中断函数
(标志为__monitor)返回时,返回状态寄存器SR的值。

D.__bcd_add_short(unsigned short,unsigned short);
功能:两个16为BCD格式的数字相加,返回和。

E.__bcd_add_long(unsigned long,unsigned long);
功能:两个32位BCD格式的数字相加,返回和。

F.__delay_cycles(x);
系统自带的精确延时。

x必须是常量或则是常量表达式,如果是变量则编译报错!延时的时间为x乘以MCLK的时钟周期。

相关主题