aboutsummaryrefslogtreecommitdiff
path: root/recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c')
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c b/recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c
new file mode 100644
index 0000000..3cc0780
--- /dev/null
+++ b/recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <limits.h>
+#include <error.h>
+#include <errno.h>
+#include <math.h>
+
+#define SAMPLES_PER_PERIOD (32)
+static short waveform_array[SAMPLES_PER_PERIOD];
+
+int main(void) {
+
+ int i;
+ int result;
+ short wave_temp;
+ float next_point = M_PI / 2;
+ float next_increment = (2 * M_PI) / SAMPLES_PER_PERIOD;
+
+ wave_temp = SHRT_MAX;
+ for(i = 0 ; i < (SAMPLES_PER_PERIOD) ; i++) {
+
+ wave_temp = SHRT_MAX * sin(next_point);
+ waveform_array[i] = wave_temp;
+ next_point += next_increment;
+ }
+
+ result = write(STDOUT_FILENO, &waveform_array, sizeof(waveform_array));
+ if (result < 0) {
+ error(1, errno, "writing to stdout");
+ }
+
+ if (result != sizeof(waveform_array)) {
+ error(1, 0, "failed to write %d bytes to stdout, only wrote %d bytes", sizeof(waveform_array), result);
+ }
+
+ return 0;
+}
+