DSP程序注释
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP程序注释
2006-08-18 18:55
DSP5402程序注释
2004年3月30日作者:浙江大学微系统公司
实验一
关于本程序的整体说明:
本程序的目的是利用5402进行处理,在屏幕上显示“hello,world!”其中使用了 #ifdef FILEIO 来选择是否输入字符串。
流程图如下:
定义了 FILEIO 么?
|
/ \
Y / \ N
输出“hello,world!” 输出“hello,world!”
| |
要求输入字符串 OVER
|
输出读入字符串大小
|
OVER
/* ======= hello.h ========== 头函数
struct PARMS { /*头函数中仅定义了一个结构体 PARMS*/
int Beta;
int EchoPower;
int ErrorPower;
int Ratio;
struct PARMS *Link;
};
======================= */
/* ======== hello.c ======== */
#include
#include "hello.h"
#define BUFSIZE 30 /*定义BUFSIZE(缓冲空间)为30*/
struct PARMS str = /*全局变量是一个结构体 str*/
{
2934, /*Beta = 2934*/
9432, /*EchoPower = 9432*/
213, /*ErrorPower = 213*/
9432, /*Ratio = 9432*/
&str /*Link 是指向str自己的指针。本程序中并未使用*/
}; /*PARAMS是在hello.h中定义的结构类型*/
/*
* ======== main ======== 主函数
*/
void main()
{
#ifdef FILEIO /*第一次运行程序时,FILEIO没有定义,此处不执行,只执行puts()一句。*/
int i;
char scanStr[BUFSIZE]; /*输入字符存入scanStr数组中*/
char fileStr[BUFSIZE]; /*存储从文件中读出的内容*/
size_t readSize; /* size_t 是在stdio.h中定义的无符号整型,用来存储输入字符数目*/
FILE fptr; /*FILE是在stdio.h中定义的一结构变量,用来记录控制输入输出流的所有信息,fprt是文件指针*/
#endif
/* 向标准输出设备写一字符串*/
puts("hello world!\n");
#ifdef FILEIO
/*清除字符型数组*/
for (i = 0; i < BUFSIZE; i++) {
scanStr[i] = 0 /* 预置的语法错误(少一个“;”)*/
fileStr[i] = 0;
}
/* 从输入设备读入一字符串,并存入scanStr数组中 */
scanf("%s", scanStr);
/*在主机上打开一文件,然后向文件写入刚才的字符串 */
fptr = fopen("file.txt", "w");
fprintf(fptr, "%s", scanStr);
fclose(fptr);
/* 在主机打开一文件,然后从中读入字符串 */
fptr = fopen("file.txt", "r");
fseek(fptr, 0L, SEEK_SET); /*SEEK_SET是stdio.h中通过宏定义定义的常量0x0000*/
/*此句如果没有,运行结果不改变,此处为了保证程序的规范(修改方便)*/
readSize = fread(fileStr, sizeof(char), BUFSIZE, fptr); /*获取文件大小,即输入字符数目*/ printf("Read a %d byte char array: %s \n", readSize, fileStr); /*输出“Read a ??(数字) byte char array: ??????(字符串)”*/
fclose(fptr); /*关闭文件*/
#endif
}
实验二
/* ======== hello.c ======== */
/* DSP/BIOS 头文件*/
#include
#include
/* 被配置工具创建的对象*/
extern far LOG_Obj trace;
/* ======== main ======== */
Void main()
{
LOG_printf(&trace, "hello world!"); /*本程序简单,仅有一句话意思很明了了。*/
/* 返回后进入DSP/BIOS闲置循环 */
return;
}
实验三
/* ======== volume.h ======== */
#ifndef __VOLUME_H
#define __VOLUME_H#ifndef TRUE
#define TRUE 1
#endif
#define BUFSIZE 0x64
#define FRAMESPERBUFFER 10
#define MINGAIN 1
#define MAXGAIN 10
#define MINCONTROL 0
#define MAXCONTROL 19
#define BASELOAD 1
#endif /* __VOLUME_H */
/*一些宏定义,定义了一些常量*/
#include
#include "volume.h"
/*定义全局变量 */
int inp_buffer[BUFSIZE]; /* 设置输入输出数据缓冲区 inp_buffer 和 out_buffer 大小为 0x64*/ int out_buffer[BUFSIZE];
int gain = MINGAIN; /* 增益设置,MINGAIN代表1,在volume.h中定义的 */