DSP完整dsp.pptVIP

  1. 1、本文档共65页,可阅读全部内容。
  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文档。上传文档
查看更多
DSP完整dsp

15.2.8 访问数据空间 数据空间的访问,是DSP最常用的操作,映射寄存器的访问也包含在内。数据空间的访问是利用指针实现的。访问方法: 1)直接利用指针访问 例如,*(unsigned int *)0x1000 = a; //写操作 b = *(unsigned int *); //读操作 2)先定义再访问 如,映射寄存器的地址是固定的,可以在头文件里先利用指针定义,然后可以在程序中引用。方法有: unsigned int *IMR=(unsigned int*)0x0004; 或 #define IMR*(int*)0x0004; 或 IMR= *(unsigned int *)0x0004; 或 加上关键字volatile,以避免C/C++的优化,使这些地址变量保存下来,专用于访问这些MMR。 volatile unsigned int *IMR=(volatile unsigned int*)0x0004; 15.2.8 访问数据空间 2种常量的定义 1) const short d1=8; //const为关键词 //定义常量dl,其值为8.这种定义方法一定要初始化。 //如果写为:const short dl;错误!没初始化。 2) #define SIN_0 0 //采用宏定义的方法定义符号常量,用标识符SIN_0代表常量0。 程序中出现的数值也是常量,例如十进制数100。另外,十六进制数以“0x”开头。 字符常量用单引号括起,切记单引号中只能有一个字符, 如‘a’是正确的字符常量,‘abc’是不合法的表示。在DSP中,‘abc’==‘c’; 字符串常量用双引号括起,如“Great Wall”等。 一个整数常量是可以赋值给各种整型变量的,一个浮点数常量可以赋位给所有的浮点数类型。 15.2.8 访问数据空间 2种变量的定义 利用已有变量类型说明符定义 格式:变量类型说明符 变量名;//类型说明符包含各种基本数 //据类型和扩展数据类型 //变量名在定义的同时可以赋初值,一般用“=”赋值 如:char ch_1; //定义一个字符变量,变量名为ch_1 short sh_temp=3; //short型变量,变量名为sh_temp long Ig_dat1; //定义一个常整型变量,变量名为lg_dat1 float fl_dat2;//定义一个浮点型变量,变量名为fl_dat2 short *Pt_addr1; //定义一个指向short型数据的指针,指针名为pt addr 15.2.8 访问数据空间 2种变量的定义 typedef 已有数据类型说明符 新数据类型说明符; 新数据类型说明符 变量名; 如:typedef long Word32;//Word32等同于长整数类型 Word32 Ig_dat1; //定义变量lg_dat1为长整数类型 typedef float f32; //f32表示浮点数 f32 fl_dat2; //定义变量fl_dat2为浮点数 2) 用户自己重新定义一些常用的数据类型说明符 格式: 其他扩展数据类型--数组、结构体、共用体等的定义相类似。 15.2.9 中断服务函数 虽然240x有2级中断,但是中断处理方法与一般单片机一样。 1) 查询法 控制程序利用循环反复查询中断标志位,当查询到中断标志位置1时,则调用中断处理子程序进行相应处理。 2)中断法(回调法) 在中断向量表中设计跳转指令,当中断响应时,从中断向量处跳转到中断服务子程序。 3)中断法的使用 (1)利用中断关键词interrupt定义中断函数。 interrupt void time()/*定义time( )为一个中断函数*/ { IMR=IMR1(#) //中断函数内容 …… } (2)任何具有名为c_intd(d为0~9)的函数,都被假定为中断程序。 如,void c_int1(void) 15.2.9 中断服务函数 4) 中断函数的调用 --由中断向量表负责完成。 为能进入中断服务程序,在中断向量表程序中必须有: .ref _time;中断函数名已在服务程序中定义为全局变量。 …… tint0: b _time;调用中断函数time( ) ……

文档评论(0)

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

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

1亿VIP精品文档

相关文档