📄 echo_control.c
字号:
//Echo_control.c Echo using two interrupts for read and write
//3 sliders to control effects: buffer size, amplitude, fading
short input, output;
short bufferlength = 1000; //initial buffer size
short i = 0; //buffer index
short buffer[8000]; //max size of buffer
short delay = 1; //determines size of buffer
short delay_flag = 1; //flag if buffer size changes
short amplitude = 1; //amplitude control by slider
short echo_type = 0; //no fading (1 for fading)
interrupt void c_int11() //ISR INT11 to write
{
short new_count; //count for new buffer
output=input+0.1*amplitude*buffer[i]; //newest+oldest sample
if (echo_type == 1) //if fading is desired
{
new_count = (i-1) % bufferlength; //previous buffer location
buffer[new_count] = output; //to store most recent output
}
output_sample(output); //output delayed sample
}
interrupt void c_int12() //ISR INT12 to read
{
input = input_sample(); //newest input sample data
if (delay_flag != delay) //if delay has changed
{ //->new buffer size
delay_flag = delay; //reint for future change
bufferlength = 1000*delay; //new buffer length
i = 0; //reinit buffer count
}
buffer[i] = input; //store input sample
i++; //increment buffer index
if (i == bufferlength) i=0; //if @ end of buffer reinit
}
main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -