dsp进行ad采样并串口发送 的c语言代码,第四章DSP的C语言程序设计.docx

…脅爲

…脅爲

…脅爲

…脅爲

胃爲讷叶右*

DSP的C语言程序设计

为什么要使用C语言对DSP编程?

C语言是咼级语言,易学易用。

C语言的编程效率极高,易于调试。

C语言的可移植性好。

C程序的结构及组成

完整的C程序是由一个主函数main()和其它的子函数组成的,每一个子函数完成特定的功能。DSP的C

语言的入口地址固定为c_intOO,在rts.lib中定义。C语言支持丰富的数据类型和数据结构,在ccs集成开发

环境中,为C语言提供了完整的支持硬件的底层函数库和支持算法的DSP函数库。在使用 C语言的库函数

时,在工程中必须包括相应的函数库和rts.lib运行时支持库。下面是一般C语言程序的结构和组成框架。

般C程序的结构如下:

II #inelude包含语句定义程序中使用的函数库对应的.h头文件

#i nclude函数库 1”

#include< 函数库 2>

#include函数库 3”

// #define定义程序中所有的宏替换

#define宏替换名 替换内容

main()函数的后面//本程序的内部函数声明,这些函数一般放在 函数类型函数名(函数参数列表)

main()函数的后面

〃中断服务程序(函数)的声明

in terrupt void fun ctio n_n ame (void);

//全局变量声明

变量类型全局变量名;

//主函数main()

void mai n(void)

〃局部变量定义

for(;;)

{

〃调用子函数来处理数据

//完成数据的输入和输出功能

}

}

//本程序的内部函数

函数类型函数名(函数参数列表)

{

//本函数的局部变量定义

//本函数中的算法

}

//程序结束

数据类型

C语言支持的数据类型很丰富,包括字符型、短整型、整型、长整型、枚举型、浮点型、双精度浮点型、

长双精度浮点型、数据指针及程序指针,要注意的是由于54x DSP是16位的处理器,它的字符型数据的长

度是16位的,另外注意比较各种数据类型的长度、内容以及所表示的值的范围大小,可以发现短整型和整 型数据类型是一致的,浮点型、双精度浮点型和长双精度浮点型是一致的,这是因为54x DSP的C语言编

译器为了适应不同的编程习惯而这样定义的,所以实际使用中可以将常用的数据类型进行适当简化,即将短

type.h中的定义:整型、整型统一为整型(int),将各种浮点类型统一为浮点型(float

type.h中的定义:

另外,为了简化书写,用户可以自定义数据类型,例如在

typedef float f32;typedef long s32;typedef int s16;

typedef float f32;

typedef long s32;

typedef int s16;

typedef un sig ned char u8; typedef un sig ned int u16;

typedef un sig ned long u32;

〃浮点型

//有符号的长整型

//有符号的整型

//无符号的字符型

//无符号的整型

//无符号的长整型

详细内容请参考头文件type.h。

四、头文件中存储器映射寄存器(MMR )的定义和访问

对于DSP的软件设计,首先必须明了 DSP的可用片内资源及其访问方法,包括DSP的片上存储器映射

寄存器、程序存储器、数据存储器、I/O空间的寻址范围、寻址方式,片上外设的寄存器定义、工作流程以

轉爲

及编程控制方法。

54X DSP的片内寄存器资源是通过两个头文件Regs.h和Regs54x.h进行定义的,这些头文件位于

c:\ti\c5400\dsk5402\include目录下,在这两个文件中定义了C54x DSP中涉及到的所有寄存器及其所包含的

控制和状态比特,这些定义是使用宏替换定义#define进行的,例如:串口控制寄存器中接收移位寄存器满

标志位的比特域定义:

# define RSRFULL 13//RSRFULL标志比特位于寄存器的 bit13位置

#define RSRFULL_SZ 1//此标志的长度为 1个比特

我们只需要了解这些寄存器定义,在编程过程中直接使用而不需要自己来重新定义。

Reg54xx.h是对Regs.h的扩展和补充,并且Reg54xx.h头文件包含 Regs.h。注意#define的语句中"”

REG_READ(addr);

REG_WRITE(addr,val); RESET_BIT(addr,bit); GET_BIT(addr,bit);

SET-BIT(addr,bit);

〃寄存器读

//寄存器写

//bit位清零

〃取得bit位的值

//bit位置1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值