CQ出版社セミナ "実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング" で使う外付け回路のテスト

Dependencies:   mbed UIT_SetOutputPortType UIT_AQM1602 UIT_ADT7410

Committer:
MikamiUitOpen
Date:
Thu Apr 02 03:47:14 2020 +0000
Revision:
2:3f2be675f975
Parent:
0:8c850cf6285d
3

Who changed what in which revision?

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