aboutsummaryrefslogtreecommitdiff
path: root/recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c
blob: 3cc078045d37002577a583e47318c742c6cd0837 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
}