//SinegenDE.c Generates a sinewave using a difference equation

short y[3] = {0,16384,0};       	 	   //y(1) = sinwT
const short A = 0;     	     			   //A = 2*coswT * 2^14
int n = 2;                                        

interrupt void c_int11()           		   //ISR
{
 y[n] = (((int)A*(int)y[n-1])>>14) - y[n-2]; //y(n) = Ay(n-1)-y(n-2)
 y[n-2] = y[n-1];                		   //update y(n-2)
 y[n-1] = y[n];                  		   //update y(n-1)
 output_sample(y[n]);            		   //output result
 return;                       		   //return to main
}

void main()
{
 comm_intr();                  		   //init DSK, codec, McBSP
 while(1);                     		   //infinite loop
}