MSP430系列单片机实用C语言程序设计
扩展的关键字
asm
也可以写成__asm。功能是在C程序中直接嵌入汇编语言。
语法:asm(“string”);其中string必须是有效的汇编语句。
__interrupt
放在函数前面,标志中断函数。下面这段程序是异步串行口UART0的接收中断函数。UART0RX_VECTOR为异步串行口UART0的接收中断向量。
举例:
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_R(void) //UART0接收中断
{
TXBUF0=RXBUF0;
}
__monitor
放在函数前面,功能是但这一函数执行的时候自动关闭中断。应该尽量缩短这样的函数,否则,中断事件无法得到及时的响应。
__no_init
放在全局变量前面,功能是使程序启动时不为变量赋初值。
__raw
编译中断函数时,编译器会自动生成一段代码,首先保存当时所用到CPU内寄存器的内容,退出中断程序时再进行恢复。将__raw放在中断函数前可以禁止保存CPU内寄存器的过程,当然退出时也不会恢复。是否为中断函数使用此关键字要根据需要而定。
__regvar
放在变量前面,作用是声明变量为寄存器变量。可以用于整数、指针、32位浮点数以及只含有一个元素的结构和联合。寄存器变量的地址只能为R4或者R5,也不能用指针指向这个寄存器变量,而且必须用__no_init禁止初始化。如:
__regvar __no_init unsi