- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . . .
学习参考
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 unsigned char q0 @ __R4;
其他不常用的关键字还有:__data16、__intrinsic、__noreturn、__root、__task、__word16。
内部函数
本节将介绍内部函数的原型和功能。
__bcd_add_short
unsigned short __bcd_add_short(unsigned short, unsigned short);
功能:两个16位BCD格式的数相加,返回和。
__bcd_add_long
unsigned long __bcd_add_long(unsigned long, unsigned long);
功能:两个32位BCD格式的数相加,返回和。
__bcd_add_long_long
unsigned long long __bcd_add_long_long(unsigned long long, unsigned long long);
功能:两个64位BCD格式的数相加,返回和。
__bic_SR_register
void __bic_SR_register(unsigned short);
功能:将CPU中SR寄存器中的某些位清0。其参数为屏蔽码,需要清0的位为1。
__bic_SR_register_on_exit
void __bic_SR_register_on_exit(unsigned short);
功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位清0。其参数为屏蔽码,需要清0的位为1。
__bis_SR_register
void __bis_SR_register(unsigned short);
功能:将CPU中SR寄存器中的某些位置1。其参数为屏蔽码,需要置1的位为1。
__bis_SR_register_on_exit
void __bis_SR_register_on_exit(unsigned short);
功能:用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位置1。其参数为屏蔽码,需要置1的位为1。
__disable_interrupt
void __disable_interrupt(void)
功能:关闭全局中断。先执行DINT命令,关闭全局中断,然后再执行NOP命令。空指令是为了确保关闭了全局中断之后再执行下面的程序。
__enable_interrupt
void __enable_interrupt(void)
功能:使用NINT指令打开全局中断。
__even_in_range
void __enable_in_range(unsigned short value, unsigned short upper_limit)
功能:只能与switch语句结合使用,判断value是否为偶数且小于等于upper_limit。
举例:
unsigned
您可能关注的文档
- [研究机构招聘]苏州生物医学工程技术研究所(筹)2010年招聘(精).doc
- 《C++面向对象程序的设计》课程设计__车位管理程序文件.doc
- 《MRI检查技术》复习题__2017届医学影像技术毕业考试(1).doc
- 《机械制图测绘》理实一体化教(学)案.doc
- 《全国计算机一级考试》教学设计说明.doc
- 《全日制义务教育美术课程标准》修订说明.doc
- 03岁婴幼儿早期亲子教养的重要性.doc
- 2001_2012年我国对外贸易依存度分析报告.doc
- 2012年成考专升本生态学基础考试真题与答案.doc
- 2013年度东宁职教中心学校提供优质服务活动实施计划方案.doc
- 《中国通史》文字稿第12集春秋争霸.docx
- java教程--类与对象-讲义课件(演讲稿).ppt
- Vue应用程序开发-(1).pptx
- 东北师大版社劳动实践与评价指导手册一年级上册主题二活动一寻找五彩的树叶课时课件.pptx
- 外研版英语四年级上册 Module 4 Unit 2 How much is it单元教学设计.docx
- 外研版英语四年级上册Module 4 单元整体教学设计.docx
- 6《上课之前》课件 鄂科技版 心理健康教育一年级.pptx
- 《1~5的认识》说课课件(共25张PPT)人教版一年级上册数学.pptx
- 六《解决问题(1)》说课课件 人教版 三年级上册数学.pptx
- 七《解决问题》说课课件 人教版 二年级上册数学.pptx
文档评论(0)