凌阳单片机C语言(网站整理).docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
凌阳单片机C语言(网站整理)

凌阳单片机C语言 注意点一:求实参顺序 unsigned int i; ?????? i=0; ?????? test(i,i++); 函数test的定义如下: void test(unsigned int f,unsigned int m) { return; } 这里我们不去追究这个函数有无意义,这里并不作讨论。 实际上,跟前面的讲解标准C的求参顺序的例子差不多,只不过把printf函数换成了一个具体的可见的函数而已。在unSP C编写以上的代码,并在IDE中进行仿真时,所得到的结果是与标准C中的是一样的,与前面的分析一样,传递参数给test函数时,test函数的两个参数将得到如下的值:f为2,m为1。感兴趣的读者可以试试。 unSP C是与标准C没什么差别太多的,尽管去按照C语言的标准去写程序好了。 这里所说的数据类型,指的是我们在编程时定义变量、常量时指定的数据类型,如“char”、“unsigned int”、“int”等。 C语言,具体的数据类型的定义是可以与具体的机器相关的,也就是说这些数据类型的具体定义(如占多少个字节长度、定义的规则等)是可以容许与最终代码所要运行的CPU(或叫机器)相关的。所以在此提出,是有必要的,因为我们本书的重要目的就是单片机的C语言编程,而且是凌阳的unSP系列单片机的C编程,即有关于使用unSP C的;我们所编写的C代码最终运行的平台是凌阳unSP系列单片机。 unSP C所定义的数据类型,下表中有述,如下: 值域 char?????????????????????????????????? 16?????????? -32768~32767 short、int???????????????????????????? 16?????????? -32768~32767long?????????????????????????????????? 32?????????? -2147483648~2147483647 unsigned char???????????????????????? 16??????????0~65535 unsigned short、unsigned int???????? 16???????? 0~65535 unsigned long???????????????????????? 32???????? 0~4294967295 float、double??????????????????????????32???????? 以IEEE格式表示的32位浮点数 char:在unSP C里面,由于没有byte的操作,将此数据类型定义为16位的长度,与一般的8位单片机的C编译器是有区别的,读者需要注意一下。 unsigned char:与前者一样,定义为了16位的长度。 double:这是需要注意的地方,目前unSP C里定义为32位的长度,是与一般的C编译器支持的64位长度有区别的。 这里所说的就与单片机的C编程有关了,桌面程序的程序员,一般都不注意编译后生成的最终代码的大小,但对于单片机(或者是底层嵌入式的编程载体)而言,对最终程序的大小(即对程序存储器、数据存储器的占用大小)是斤斤计较的。 unsigned与signed型的数据,则C编译器会调用不同的支持库来完成这两者不同类型的数据的操作,也就是说会增加一些程序的大小以及对RAM的占用,所以建议读者在编程时,合理地定义自己所需的数据类型。 unsigned 的数据定义,这样在运算时,只需要进行无符整型数的运算,而不需要对负数进行判断及处理,在速度上会快些。 注意点四:谨慎使用浮点数 绝大多数的单片机是没有浮点运算单元的,即CPU不支持浮点运算,而非要进行浮点运算时只能通过软件的方式完成。unSP C是凌阳16位单片机的C编程平台,与其它的单片机一样,也没有浮点的运算单元在CPU当中,所以在unSP C当中使用的浮点运算时,也是调用库(这个“库”将在后面的内容中介绍,大家可以留意一下后面的内容)里面的浮点运算库完成,然而浮点库在执行时,需要消耗大量的时间以及资源(相对于整型数的运算)。 1~0.01之间,而且精度要求为小数点后两位,那为何不将数据按比例扩大,处理时以100~1之间处理呢? C语言编程当中使用了浮点数,以及使用其进行了运算,结果发现程序的执行相当的慢,也就不足为奇了。 unSP IDE 在SPCE061A或者是其它的凌阳16位单片机的汇编编程当中,unSP IDE的汇编编译器把那个从复位向量跳转到指定的主程序入口的操作过程给封锁了起来,也就是说,在复位向量里面写一个跳转的指令这样的工作,无需用户去做了,只需要按照统一的主程序入口开始你的编程之旅即可。 unSP 的

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档