Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
DSin.h
00001 /** Defining Discretized Sinusoidal Wave Model 00002 * 00003 * \file DSin.h 00004 * \author Akifumi Takahashi 00005 * \date 2019/Nov/28 ver.1 publish 00006 * \version 1.0.2019.Nov 00007 * \version 2.0.2019.Dec 00008 */ 00009 00010 #ifndef DISCRETIZED_SINUSOIDAL_WAVE_MODEL_H 00011 #define DISCRETIZED_SINUSOIDAL_WAVE_MODEL_H 00012 #define _USE_MATH_DEFINES 00013 #include <cmath> 00014 00015 #ifndef M_PI 00016 #define M_PI 3.141592 00017 #endif 00018 00019 #include "mbed.h" 00020 /** \Class DISCRETIZED SINUSOIDAL WAVE MODEL 00021 * 00022 * Model of a discretized sinusoidal wave whose value type is float, 00023 * and the range is from (-1.0f * ampl) to (1.0f * ampl). 00024 * 00025 */ 00026 class DSin 00027 { 00028 private: 00029 /// Amplitude of sinusoidal wave (mA) 00030 float m_ampl; 00031 00032 /// Frequency of the wave (Hz) 00033 uint16_t m_freq; 00034 00035 /// Pulse width fineness of dicretization (us) 00036 /// pwth = 1000000 / freq / resolution_ofsin; 00037 uint16_t m_pwth; 00038 00039 float* m_discretized_sin; 00040 int32_t* m_discretized_sin_p16m16; 00041 00042 void init(); 00043 00044 public: 00045 float const ampl_max; 00046 uint16_t const freq_max; 00047 uint16_t const resolution_ofsin; // = arg_resolution_ofsin below 00048 00049 DSin( 00050 uint16_t const arg_resolution_ofsin = 20 00051 ); 00052 DSin( 00053 float const arg_ampl, 00054 uint16_t const arg_freq, 00055 uint16_t const arg_resolution_ofsin = 20 00056 ); 00057 00058 void setParam( 00059 float const arg_ampl, 00060 uint16_t const arg_freq 00061 ); 00062 00063 void setAmplitude( 00064 float const arg_ampl 00065 ); 00066 00067 void setFrequency( 00068 uint16_t const arg_freq 00069 ); 00070 00071 float getValue(); 00072 int32_t getValue_p16m16(); 00073 00074 void getValueofSamplePoints(float[]); 00075 00076 float getAmplitude(); //inline 00077 uint16_t getFrequency(); //inline 00078 uint16_t getPulseWidth(); //inline 00079 00080 }; 00081 00082 00083 inline float DSin::getAmplitude() 00084 { 00085 return m_ampl; 00086 } 00087 00088 inline uint16_t DSin::getFrequency() 00089 { 00090 return m_freq; 00091 } 00092 00093 inline uint16_t DSin::getPulseWidth() 00094 { 00095 return m_pwth; 00096 } 00097 #endif
Generated on Tue Jul 26 2022 18:59:28 by
1.7.2