//Squarewave.c Generates a squarewave using a look-up table #define table_size (int)0x100 //size of table = 256 int data_table[table_size]; //data table array int i; interrupt void c_int11() //interrupt service routine { output_sample(data_table[i]); //output value each Ts if (i < table_size) ++i; //if table size is reached else i = 0; //reinitialize counter return; //return from interrupt } main() { for(i=0; i<table_size/2; i++) //set 1st half of buffer data_table[i] = 0x7FFF; //with max value (2^15)-1 for(i=table_size/2; i<table_size; i++) //set 2nd half of buffer data_table[i] = -0x8000; //with -(2^15) i = 0; //reinit counter comm_intr(); //init DSK, codec, McBSP while (1); //infinite loop }