make discretized sin wave, which is stored internal array var. The iterator of which array can go ahead by calling a get function.
DSin.h
- Committer:
- aktk
- Date:
- 2019-12-02
- Revision:
- 1:b01e84ce3ae0
File content as of revision 1:b01e84ce3ae0:
/** Defining Discretized Sinusoidal Wave Model * * \file DSin.h * \author Akifumi Takahashi * \date 2019/Nov/28 ver.1 publish * \version 1.0.2019.Nov * \version 2.0.2019.Dec */ #ifndef DISCRETIZED_SINUSOIDAL_WAVE_MODEL_H #define DISCRETIZED_SINUSOIDAL_WAVE_MODEL_H #define _USE_MATH_DEFINES #include <cmath> #ifndef M_PI #define M_PI 3.141592 #endif #include "mbed.h" /** \Class DISCRETIZED SINUSOIDAL WAVE MODEL * * Model of a discretized sinusoidal wave whose value type is float, * and the range is from (-1.0f * ampl) to (1.0f * ampl). * */ class DSin { private: /// Amplitude of sinusoidal wave (mA) float m_ampl; /// Frequency of the wave (Hz) uint16_t m_freq; /// Pulse width fineness of dicretization (us) /// pwth = 1000000 / freq / resolution_ofsin; uint16_t m_pwth; float* m_discretized_sin; int32_t* m_discretized_sin_p16m16; void init(); public: float const ampl_max; uint16_t const freq_max; uint16_t const resolution_ofsin; // = arg_resolution_ofsin below DSin( uint16_t const arg_resolution_ofsin = 20 ); DSin( float const arg_ampl, uint16_t const arg_freq, uint16_t const arg_resolution_ofsin = 20 ); void setParam( float const arg_ampl, uint16_t const arg_freq ); void setAmplitude( float const arg_ampl ); void setFrequency( uint16_t const arg_freq ); float getValue(); int32_t getValue_p16m16(); void getValueofSamplePoints(float[]); float getAmplitude(); //inline uint16_t getFrequency(); //inline uint16_t getPulseWidth(); //inline }; inline float DSin::getAmplitude() { return m_ampl; } inline uint16_t DSin::getFrequency() { return m_freq; } inline uint16_t DSin::getPulseWidth() { return m_pwth; } #endif