FFT アナライザ このプログラムの説明は,CQ出版社「トランジスタ技術」の2021年10月号から開始された連載記事「STM32マイコンではじめるPC計測」の中にあります.このプログラムといっしょに使うPC側のプログラムについても同誌を参照してください.
Dependencies: Array_Matrix mbed SerialTxRxIntr DSP_ADDA UIT_FFT_Real Window
Diff: DoubleBuffer.hpp
- Revision:
- 1:d9dbfbe95c8d
- Parent:
- 0:e5fc70976c00
--- a/DoubleBuffer.hpp Thu Sep 09 08:52:33 2021 +0000 +++ b/DoubleBuffer.hpp Wed Nov 03 01:29:16 2021 +0000 @@ -2,7 +2,7 @@ // ダブル・バッファの template クラス // バッファに2次元配列(Matrix クラス)を使用 // -// 2021/05/22, Copyright (c) 2021 MIKAMI, Naoki +// 2021/10/22, Copyright (c) 2021 MIKAMI, Naoki //-------------------------------------------------------- #ifndef DOUBLE_BUFFER_HPP @@ -11,19 +11,19 @@ #include "Matrix.hpp" using namespace Mikami; -template<class T> class DoubleBuffer +class DoubleBuffer { public: // コンストラクタ - explicit DoubleBuffer(int size, T initialValue = 0) + explicit DoubleBuffer(int size, float initialValue = 0) : N_(size), buf_(2, size, initialValue), ping_(0), pong_(1), index_(0), full_(false) {} // データを格納 - void Store(T data) { buf_[ping_][index_++] = data; } + void Store(float data) { buf_[ping_][index_++] = data; } // 出力バッファからデータの取り出し - T Get(int n) const { return buf_[pong_][n]; } + float Get(int n) const { return buf_[pong_][n]; } // バッファが満杯でバッファを切り替える void IsFullSwitch() @@ -46,7 +46,7 @@ private: const int N_; // バッファのサイズ - Matrix<T> buf_; // バッファ + Matrix<float> buf_; // バッファ int ping_, pong_; // バッファ切替用 int index_; // 入力データのカウンタ bool full_; // 満杯の場合 true