📄 volume.c
字号:
#include <stdio.h>
#include "volume.h"
int inp_bufferSine[BUFSIZE1];
int inp_bufferSquare[BUFSIZE1];
int inp_bufferSawtooth[BUFSIZE1];
int out_buffer[BUFSIZE2];
int gain = MINGAIN;
unsigned int processingLoad = BASELOAD;
struct PARMS str =
{
2934,
9432,
213,
9432,
&str
};
extern void load(unsigned int loadValue);
static int Processingsine(int *inputSine, int *output, int step);
static int ProcessingSquare(int *inputSqure, int *output, int step);
static int ProcessingSawtooth(int *inputSawtooth, int *output, int step);
static void dataIO(void);
void main()
{
int *inputSine = &inp_bufferSine[0];
int *inputSquare = &inp_bufferSquare[0];
int *inputSawtooth = &inp_bufferSawtooth[0];
int *output = &out_buffer[0];
int step=0;
float Frequence=0;
//int Fs=80000;//频率的分辨率为39.0625
int section;
puts("Frequence happen started\n");
printf("please input F=");
scanf("%f",&Frequence);
step=(int)(Frequence/39.0625+0.5);
printf("please choose :\n1.sine wave.\n2.square wave.\n3.sawtooth wave.\n");
printf("please input your section:");
scanf("%d",§ion);
while(1)
{
switch(section)
{
case 1:while(TRUE)
{
dataIO();
#ifndef FILEIO
puts("begin processing sine wave");
#endif
Processingsine(inputSine, output, step);
}
break;
case 2:while(TRUE)
{
dataIO();
#ifndef FILEIO
puts("begin processing square wave");
#endif
ProcessingSquare(inputSquare, output, step);
}break;
case 3:while(TRUE)
{
dataIO();
#ifndef FILEIO
puts("begin processing sawtooth wave");
#endif
ProcessingSawtooth(inputSawtooth, output, step);
}
break;
default:printf("please input once more!\n");
break;
}
}
}
static int Processingsine(int *inputSine, int *output, int step)
{
int size1 = BUFSIZE1;
int size2 = BUFSIZE2;
int *go=inputSine;
while(size2--)
{
*output=*inputSine;
output++;
inputSine=inputSine+step;
size1=size1-step;
if(!size1||size1<0)
{
inputSine=go;
size1=BUFSIZE1;
}
}
load(processingLoad);
return(TRUE);
}
static int ProcessingSquare(int *inputSqure, int *output, int step)
{
int size1 = BUFSIZE1;
int size2 = BUFSIZE2;
int *go=inputSqure;
while(size2--)
{
*output=*inputSqure;
output++;
inputSqure=inputSqure+step;
size1=size1-step;
if(!size1||size1<0)
{
inputSqure=go;
size1=BUFSIZE1;
}
}
load(processingLoad);
return(TRUE);
}
static int ProcessingSawtooth(int *inputSawtooth, int *output, int step)
{
int size1 = BUFSIZE1;
int size2 = BUFSIZE2;
int *go=inputSawtooth;
while(size2--)
{
*output=*inputSawtooth;
output++;
inputSawtooth=inputSawtooth+step;
size1=size1-step;
if(!size1||size1<0)
{
inputSawtooth=go;
size1=BUFSIZE1;
}
}
load(processingLoad);
return(TRUE);
}
static void dataIO()
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -