As i only used a limited amplitude on the

**, im posting a template here that should help you make the necessary changes( someone asked me this).***sine wave generator for Arduino Due's DAC*
This specific template code was written for C code in Codeblocks for Gcc, so you will have to be able to know the differences.

# include < stdio.h >

# include < stdlib.h >

# include < math.h >

# define n_points 32 //256 is ideal for microcontrollers or highers if youre computing complex sinusoids

int main ()

{

float pi = 3.141592;

float w ; // ψ

float yi ;

float phase;

int sign_samp;

int sin_data[n_points]; // sine LUT Array

int i;

w= 2*pi;

w= w/n_points;

for (i = 0; i <= n_points; i++)

{

yi= 2047*sin(phase);

phase=phase+w;

sign_samp=2047+yi; // dc offset translated for a 12 bit DAC

//sign_samp+= b; // Add adc value; Keep it at zero for pure sine

sin_data[i]=sign_samp; // write value into array

/*

*/

}

for (i = 0; i <= n_points; i++)

{

int k=sin_data[i];

printf ("sine is %d\n", k);

printf ("i is ... %d\n", i);

}

float x;

printf ("Enter a number ... \n");

scanf ("%f", &x); // keeps the debugging console on codeblocks open ;)

return 0;

}

Sine plot with result of a 32 n_points as above using

*GNUmeric*

*Pseudo-code*

*"Two random variables were talking in a bar. They thought they were being discrete but I heard their chatter continuously*"

(1) Signal Processing for Communications by Paolo Prandoni and Martin Vetterli

(2) http://dubworks.blogspot.co.uk/p/blog-page.html

## No comments:

## Post a Comment

Feel free to contact me with any suggestions, doubts or requests.

Bless