📄 two_tones.c
字号:
//two_tones.c Generates/adds two tones using difference equations
short sinegen(void); //for generating tone
short output; //for output
short sinegen_buffer[256]; //buffer for output data
const short bufferlength = 256; //buffer size for plot with CCS
short i = 0; //buffer count index
short y1[3] = {0,-15137,-11585}; //y1(0),y1(-1),y1(-2) for 1.5kHz
const short A1 = 12540; //A1 = 2coswT scaled by 2^14
short y2[3] = {0,-16384,0}; //y2(0),y2(-1),y2(-2) for 2kHz
const short A2 = 0; //A2 = 2coswT scaled by 2^14
interrupt void c_int11() //ISR
{
output = sinegen(); //out from tone generation function
sinegen_buffer[i] = output; //output into buffer
output_sample(output); //output result
i++; //increment buffer count
if (i == bufferlength) i = 0; //if buffer count = size of buffer
return; //return to main
}
short sinegen() //function to generate tone
{
y1[0] =((((int)y1[1]*(int)A1))>>14)-y1[2]; //y1(n)= A1*y1(n-1)-y1(n-2)
y1[2] = y1[1]; //update y1(n-2)
y1[1] = y1[0]; //update y1(n-1)
y2[0] =((((int)y2[1]*(int)A2))>>14)-y2[2]; //y2(n)= A2*y2(n-1)-y2(n-2)
y2[2] = y2[1]; //update y2(n-2)
y2[1] = y2[0]; //update y2(n-1)
return (y1[0] + y2[0]); //add the two tones
}
void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -