//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
}