demo: Add analog sawtooth pattern.
This commit is contained in:
parent
091c962127
commit
9f54e0e84f
|
@ -79,6 +79,7 @@ enum {
|
||||||
PATTERN_SQUARE,
|
PATTERN_SQUARE,
|
||||||
PATTERN_SINE,
|
PATTERN_SINE,
|
||||||
PATTERN_TRIANGLE,
|
PATTERN_TRIANGLE,
|
||||||
|
PATTERN_SAWTOOTH,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *logic_pattern_str[] = {
|
static const char *logic_pattern_str[] = {
|
||||||
|
@ -93,6 +94,7 @@ static const char *analog_pattern_str[] = {
|
||||||
"square",
|
"square",
|
||||||
"sine",
|
"sine",
|
||||||
"triangle",
|
"triangle",
|
||||||
|
"sawtooth",
|
||||||
};
|
};
|
||||||
|
|
||||||
struct analog_gen {
|
struct analog_gen {
|
||||||
|
@ -233,6 +235,21 @@ static void generate_analog_pattern(const struct sr_probe_group *probe_group, ui
|
||||||
asin(sin(2 * M_PI * frequency * t));
|
asin(sin(2 * M_PI * frequency * t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ag->num_samples = num_samples;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PATTERN_SAWTOOTH:
|
||||||
|
frequency = sample_rate / ANALOG_SAMPLES_PER_PERIOD;
|
||||||
|
|
||||||
|
while (num_samples % ANALOG_SAMPLES_PER_PERIOD != 0)
|
||||||
|
num_samples--;
|
||||||
|
|
||||||
|
for (i = 0; i < num_samples; i++) {
|
||||||
|
t = (double) i / (double) sample_rate;
|
||||||
|
ag->pattern_data[i] = 2 * ANALOG_AMPLITUDE *
|
||||||
|
((t * frequency) - floor(0.5f + t * frequency));
|
||||||
|
}
|
||||||
|
|
||||||
ag->num_samples = num_samples;
|
ag->num_samples = num_samples;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue