make discretized sin wave, which is stored internal array var. The iterator of which array can go ahead by calling a get function.

Revision:
1:b01e84ce3ae0
Parent:
0:6400e338266f
--- a/DSinGenerator.cpp	Wed Nov 27 23:03:42 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-#include "DSinGenerator.h"
-
-DSinGenerator::DSinGenerator(
-    uint16_t const arg_resolution_ofsin
-):
-    ampl_max(10),
-    freq_max(5000),
-    resolution_ofsin(arg_resolution_ofsin)
-{
-    init();
-    setParam(0, 4000);
-}
-
-DSinGenerator::DSinGenerator(
-    float const arg_ampl,
-    uint16_t const arg_freq,
-    uint16_t const arg_resolution_ofsin
-): 
-    ampl_max(10),
-    freq_max(5000),
-    resolution_ofsin(arg_resolution_ofsin)
-{
-    init();
-    setParam(arg_ampl, arg_freq);
-}
-
-void DSinGenerator::setParam(
-    float const arg_ampl,
-    uint16_t const arg_freq
-)
-{
-    setAmplitude(arg_ampl);
-    setFrequency(arg_freq);
-}
-
-void DSinGenerator::setAmplitude(
-    float const arg_ampl
-)
-{
-    ampl = arg_ampl;
-    for(int i = 0; i < resolution_ofsin; i++){
-        discretized_sin_p16m16[i] = static_cast<int32_t>(4095.0 / ampl_max * ampl * discretized_sin[i] );
-    }
-}
-
-void DSinGenerator::setFrequency(
-    uint16_t const arg_freq
-)
-{
-    freq = arg_freq;
-    pwth = 1000000 / freq / resolution_ofsin;
-}
-
-void DSinGenerator::init()
-{
-    discretized_sin = new float[resolution_ofsin];
-    discretized_sin_p16m16 = new int32_t[resolution_ofsin];
-    
-    for(int i = 0; i < resolution_ofsin; i++){
-        discretized_sin[i] = sin( 2.0 * M_PI * static_cast<float>(i) / static_cast<float>(resolution_ofsin));
-    }
-}
-
-float DSinGenerator::getValue()
-{
-    static int itr = 0;
-    return ampl * discretized_sin[itr++ % resolution_ofsin];
-}
-
-int32_t DSinGenerator::getValue_p16m16()
-{
-    static int itr = 0;
-    return discretized_sin_p16m16[itr++ % resolution_ofsin];
-}
-
-void DSinGenerator::getValueofSamplePoints(float arg_dsin[])
-{
-    memcpy(arg_dsin, discretized_sin, sizeof(float) * resolution_ofsin);
-}
\ No newline at end of file