CQ出版社セミナ,2021/12/07開催「実習・C++言語によるArmマイコンのプログラミング」で使うプログラム.

Dependencies:   Array_Matrix mbed SerialTxRxIntr UIT_FFT_Real

Committer:
MikamiUitOpen
Date:
Thu Apr 02 01:12:34 2020 +0000
Revision:
5:5e55a5f440c0
Parent:
2:d28a3f741217
6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 2:d28a3f741217 1 //-------------------------------------------------------------
MikamiUitOpen 2:d28a3f741217 2 // F446 内蔵 ADC2 のための抽象基底クラス(ヘッダ)
MikamiUitOpen 2:d28a3f741217 3 //
MikamiUitOpen 2:d28a3f741217 4 // 2020/01/28 Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 2:d28a3f741217 5 //-------------------------------------------------------------
MikamiUitOpen 2:d28a3f741217 6
MikamiUitOpen 2:d28a3f741217 7 #include "mbed.h"
MikamiUitOpen 2:d28a3f741217 8
MikamiUitOpen 2:d28a3f741217 9 #ifndef ADC_F446_BASE_HPP
MikamiUitOpen 2:d28a3f741217 10 #define ADC_F446_BASE_HPP
MikamiUitOpen 2:d28a3f741217 11
MikamiUitOpen 2:d28a3f741217 12 namespace Mikami
MikamiUitOpen 2:d28a3f741217 13 {
MikamiUitOpen 2:d28a3f741217 14 class AdcF446_Base
MikamiUitOpen 2:d28a3f741217 15 {
MikamiUitOpen 2:d28a3f741217 16 public:
MikamiUitOpen 2:d28a3f741217 17 // コンストラクタ
MikamiUitOpen 2:d28a3f741217 18 // fSampling 標本化周波数 [kHz]
MikamiUitOpen 2:d28a3f741217 19 // pin 入力ピンの名前
MikamiUitOpen 2:d28a3f741217 20 AdcF446_Base(float fSampling, PinName pin);
MikamiUitOpen 2:d28a3f741217 21
MikamiUitOpen 2:d28a3f741217 22 virtual ~AdcF446_Base() {}
MikamiUitOpen 2:d28a3f741217 23
MikamiUitOpen 2:d28a3f741217 24 // AD 変換された値を読み込む
MikamiUitOpen 2:d28a3f741217 25 // -1.0f <= AD変換された値 < 1.0f
MikamiUitOpen 2:d28a3f741217 26 virtual float Read() const = 0; // 純粋仮想関数
MikamiUitOpen 2:d28a3f741217 27
MikamiUitOpen 2:d28a3f741217 28 protected:
MikamiUitOpen 2:d28a3f741217 29 static ADC_TypeDef* const myAdc_; // AD 変換器に対応するポインタ
MikamiUitOpen 2:d28a3f741217 30 float ToFloat(uint16_t x) const { return AMP_*(x - 2048); }
MikamiUitOpen 2:d28a3f741217 31
MikamiUitOpen 2:d28a3f741217 32 private:
MikamiUitOpen 2:d28a3f741217 33 static const float AMP_ = 1.0f/2048.0f;
MikamiUitOpen 2:d28a3f741217 34 // AD 変換器の外部トリガに使うタイマ (TIM8) の設定
MikamiUitOpen 2:d28a3f741217 35 // fSampling 標本化周波数 [kHz]
MikamiUitOpen 2:d28a3f741217 36 void SetTim8(float fSampling);
MikamiUitOpen 2:d28a3f741217 37
MikamiUitOpen 2:d28a3f741217 38 // AD 変換器に関係のある GPIO の設定
MikamiUitOpen 2:d28a3f741217 39 void SetGPIO(PinName pin);
MikamiUitOpen 2:d28a3f741217 40
MikamiUitOpen 2:d28a3f741217 41 // コピー・コンストラクタ,代入演算子の禁止のため
MikamiUitOpen 2:d28a3f741217 42 AdcF446_Base(const AdcF446_Base&);
MikamiUitOpen 2:d28a3f741217 43 AdcF446_Base& operator=(const AdcF446_Base&);
MikamiUitOpen 2:d28a3f741217 44 };
MikamiUitOpen 2:d28a3f741217 45 }
MikamiUitOpen 2:d28a3f741217 46 #endif // ADC_F446_BASE_HPP