As i only used a limited amplitude on the sine wave generator for Arduino Due's DAC, im posting a template here that should help you make the necessary changes( someone asked me this).
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