オシロスコープ. このプログラムの説明は,CQ出版社「トランジスタ技術」の2021年10月号から開始された連載記事「STM32マイコンではじめるPC計測」の中にあります.このプログラムといっしょに使うPC側のプログラムについても同誌を参照してください.
Dependencies: Array_Matrix mbed SerialTxRxIntr DSP_ADDA_Dual
Diff: XferWaveform.hpp
- Revision:
- 0:4440ad009afe
diff -r 000000000000 -r 4440ad009afe XferWaveform.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/XferWaveform.hpp Thu Sep 09 08:47:03 2021 +0000 @@ -0,0 +1,39 @@ +//--------------------------------------------------------------------- +// 波形データを PC へ転送するための XferBase の派生クラス +// +// 2021/07/11, Copyright (c) 2021 MIKAMI, Naoki +//--------------------------------------------------------------------- + +#include "XferBase.hpp" + +#ifndef XFER_WAVEFORM_DERIVED_HPP +#define XFER_WAVEFORM_DERIVED_HPP + +class XferWaveform : public XferBase +{ +public: + // コンストラクタ + XferWaveform(SerialRxTxIntr& rxTx, int size) + : XferBase(rxTx, size) {} + +private: + // 転送すべきデータを転送する形式に変換 + // -1 <= xIn[] <= 1 + // 対応関係:1 => 10000, -1 => 0 + virtual void Convert(const float xIn[]) + { + static const float FACTOR = 5000.0f; + for (int n=0; n<SIZE_; n++) + { + float x = FACTOR*(xIn[n] + 1.0f); + if (x > 10000) x = 10000; + if (x < 0) x = 0; + xn_[n] = (uint16_t)x; + } + } + + // コピー・コンストラクタおよび代入演算子の禁止のため + XferWaveform(const XferWaveform&); + XferWaveform& operator=(const XferWaveform&); +}; +#endif // XFER_WAVEFORM_DERIVED_HPP \ No newline at end of file