//Noise_gen.c Pseudo-random sequence generation #include "noise_gen.h" //header file for noise sequence int fb; shift_reg sreg; //shift reg structure interrupt void c_int11() //interrupt service routine { int prnseq; //for pseudo-random sequence if(sreg.bt.b0) //sequence{1,-1}based on bit b0 prnseq = -8000; //scaled negative noise level else prnseq = 8000; //scaled positive noise level fb =(sreg.bt.b0)^(sreg.bt.b1); //XOR bits 0,1 fb ^=(sreg.bt.b11)^(sreg.bt.b13); //with bits 11,13 ->fb sreg.regval<<=1; //shift register 1 bit to left sreg.bt.b0 = fb; //close feedback path output_sample(prnseq); //output scaled sequence return; //return from interrupt } void main() { sreg.regval = 0xFFFF; //set shift register fb = 1; //initial feedback value comm_intr(); //init DSK, codec, McBSP while (1); //infinite loop }