📄 正弦波数据产生程序.c
字号:
/***************生成DA转换产生正弦波的数据*******************/
#include<stdio.h>
#include<math.h>
#include<string.h>
unsigned int data_num; /*取点数*/
char filename[]="sinedat"; /*文件名*/
char str[10]; /*取点数转变为字符串*/
char txt[]=".txt"; /* 文件后缀名*/
unsigned char error=0;
/*void numtochar(unsigned int);*/
/*******数字变为字符串************/
void numtochar(unsigned int a)
{
unsigned char ge,shi,bai,qian,wan;
ge=a%10;
a/=10;
shi=a%10;
a/=10;
bai=a%10;
a/=10;
qian=a%10;
a/=10;
wan=a%10;
if(wan!=0) /*万位不为0*/
{
str[0]=wan+48;
str[1]=qian+48;
str[2]=bai+48;
str[3]=shi+48;
str[4]=ge+48;
}else if(qian!=0) /*千位为0*/
{
str[0]=qian+48;
str[1]=bai+48;
str[2]=shi+48;
str[3]=ge+48;
}else if(bai!=0)
{
str[0]=bai+48;
str[1]=shi+48;
str[2]=ge+48;
}else if(shi!=0)
{
str[0]=shi+48;
str[1]=ge+48;
}else if(ge!=0)
{
str[0]=ge+48;
}
}
main()
{
int i;
int a;
FILE *fp;
putdata:
/*clrscr();*/
printf("\n===========================================\nSinewave Data Produce Source\nDesigned By Huangchayong \n===========================================\nPlease Enter The Number of The Wave Data:");
if(error==1)
{
error=0;
printf("\n\n Error!! The number you enter is too large,it must be 0~32767 !\n Please Enter Again:" );
}
scanf("%d",&data_num); /*输入取点数*/
if(data_num>32767)
{
error=1;
goto putdata;
}
numtochar(data_num); /*将取点数转化为字符串,存入str[]中*/
strcpy(filename,str); /*将str中串复制到filename中*/
strcat(filename,txt); /* 文件名加后缀.txt */
fp=fopen(filename,"w"); /*产生的数据放置的位置,文件名*/
fprintf(fp,"/********正弦波数据表,取点数:"); /*数据表注释*/
fprintf(fp,str); /*数据表注释*//* 在这写出取点数 */
fprintf(fp,",设计者:黄茶勇 2006-09-02********/\n"); /*数据表注释*/
fprintf(fp,"unsigned char code SineWaveTable[]={\n");/*数据表表头*/
for(i=0;i<data_num;i++) /*数据表数据*/
{
a=128*sin(i*6.28/data_num)+128; /*获取数据*/
fprintf(fp,"0x"); /*在数据前加0x */
/* if(a<16)fprintf(fp,"0"); */
fprintf(fp,"%02x",a); /* 十六进制输出,空2格*/
fprintf(fp,"," ); /* 数据后加"," */
if((i+1)%10==0) fprintf(fp,"\n"); /*每10个数据一行*/
}
fprintf(fp,"};\n"); /*数据表尾*/
printf("completed.\n");
fclose(fp); /*关闭文件*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -