- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
凌阳C语言应用研讨
前言 这个ppt的重点在于讲述如何使用C语言来对SPCE061A单片机进行编程。 希望这个ppt对同学们有所帮助。 目录 凌阳C语言简介 凌阳C语言基础 C和汇编混合编程 用C来直接控制硬件 凌阳C语言简介 用C语言编程的优点 寄存器分配、数据类型等由编译器管理。 编程及调试的时间减少,大大缩短开发周期。 明显增加软件可读性,便于改进和扩充。 用C语言可以很方便地对SPCE061A进行编程 IDE直接提供了C语言的开发环境,C函数和汇编函数可以方便地进行相互调用。 Software Libraries Standard C library Hardware library SACM ( Sunplus audio coding method) 凌阳C语言基础 unSP GCC认可的基本数据类型及其值域 数据类型应该注意的地方 char和unsigned char为16位 这与一般机器使用的GCC数据类型之间有一些差别。 float与double均存储为32位浮点数 unSP汇编的float与double分别是32位与64位浮点数。 关于变量的signed和unsigned 如果使用signed和unsigned两种数据类型,将使存储空间成倍增长。 因为使用signed和unsigned两种数据类型的库函数是不同的,使用signed和unsigned,就得同时使用这两种格式类型的库函数, 最好采用unsigned格式。 在编程时,如果只强调程序的运算速度而又不进行负数运算时,最好采用unsigned格式。 关于实参求值顺序 unSP IDE和Turbo C一样,实参的求值顺序是从右到左的,如下例: i=3;printf(%d,%d,i,i++);? C和汇编混合编程 混合编程的三个方面 C调用汇编函数 汇编调用C函数 C中嵌入在线汇编 C调用汇编函数 要求汇编函数名也以下划线“_”为前缀 因为C编译器产生的所有标号都以下划线“_”为前缀。 在进行参数传递时,参数以相反的顺序(从右到左)被压入栈中。 汇编函数的16位返回值存放在寄存器R1中。32位的返回值存入寄存器对R1、R2中;其中低字在R1中,高字在R2中。 C调用汇编的小例子 汇编调用C小例子 C中嵌入在线汇编 在线汇编指令格式: asm (“汇编指令模板”:输出参数:输入参数) 利用嵌入式汇编写端口寄存器 在C对P_IOA_Dir赋值0x1234,则嵌入汇编的实现方式如下: asm(“.define P_IOA_Dir 0x7002”); int main(void) { asm([P_IOA_Dir] = %0 : : r(0x1234)); } 利用嵌入式汇编读端口寄存器 把P_IOA_Dir的值读出并保存在C中的一个int变量j里 ,则嵌入汇编的方式如下: asm(“.define P_IOA_Dir 0x7002”); int main(void) { int j; asm(%0 = [P_IOA_Dir] : =r(j)); } 用C来直接控制硬件 使用纯C对寄存器进行操作 #define P_IOA_Dir (volatile unsigned int *)0x7002 int main(void) { int j; * P_IOA_Dir=0x1234; j= * P_IOA_Dir; } 用C进行IO设置 //设置A口为带下拉电阻的输入 *P_IOA_Dir =0; *P_IOA_Attrib =0; *P_IOA_Data =0; ? //设置B口为同相低电平输出 *P_IOA_Dir =0xffff; *P_IOB_Attrib =0xffff; *P_IOB_Data =0; 用C进行系统时钟设置 #define P_SystemClock (volatile unsigned int *)0x7013 ?*P_SystemClock = System_Information System Information = CPU Clock + 32K Mode + 32K Status + Fosc 用C进行系统时钟设置 CPU Clock的取值可以是以下几种: C_Fosc ? Fosc C_Fosc_Div_2 ? Fosc/2 C_Fosc_Div_4 ? Fosc/4 C_Fosc_Div_8 ? Fosc/8 (默认值) C_Fosc_Div_16 ? Fosc/16 C_Fosc_Div_32
您可能关注的文档
- 关心学生安全创建平安校园研讨.ppt
- 关於TP的一些新技术研讨.ppt
- 关注十八届四中全会,聚焦依法治国研讨.ppt
- 关系型数据库系统及其应用wsy研讨.ppt
- 关系数据库标准语言SQL研讨.ppt
- 关系网络管理技术《物联网技术基础教程》研讨.ppt
- 关键客户服务3研讨.ppt
- 关键技术2研讨.ppt
- 关键技术研讨.ppt
- 关键词与SEO研讨.ppt
- 2024年度安永全球另类投资基金调查报告.docx
- 2024年中国汽车产业出海回顾分析 -中汽信科国际化研究团队.docx
- 【民航局国际合作服务中心】马尔代夫民航业发展研究报告.docx
- 2025走向融合与深化的中国媒介市场报告-星传媒体.docx
- 2023Givaudan和ESG目的与性能.docx
- 中国民间应对气候变化行动故事集-教育故事.docx
- 2025AI制药市场规模产业链构成应用现状及AI制药公司分析报告.docx
- 医疗器械专题之基因测序:分子诊断掌上明珠,四代测序开启规模化应用时代.docx
- 2024年中央银行黄金储备调查报告 202406.docx
- 智慧芽 -2024第4季度全球潜力靶点及FIC产品调研报告.docx
文档评论(0)