不韋 呂
/
SDR_AM_Rx_CIC
AM中波放送用SDR.CICフィルタのみを使用.CQ出版社「トランジスタ技術」誌,2021年4月号に掲載
Diff: SDR_Library/F446_ADC.hpp
- Revision:
- 0:6906f8616429
- Child:
- 1:30d9fb51dec1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDR_Library/F446_ADC.hpp Mon Sep 16 14:20:17 2019 +0000 @@ -0,0 +1,46 @@ +//------------------------------------------------------------- +// F446 内蔵 ADC をポーリング方式で使うためのクラス(ヘッダ) +// +// 2019/07/15, Copyright (c) 2019 MIKAMI, Naoki +//------------------------------------------------------------- + +#include "mbed.h" + +#ifndef ADC_F446_POLLING_HPP +#define ADC_F446_POLLING_HPP + +namespace Mikami +{ + class AdcF446 + { + public: + // コンストラクタ + // fSampling 標本化周波数 [kHz] + // pin 入力ピンの名前 + AdcF446(float fSampling, PinName pin); + + virtual ~AdcF446() {} + + // AD 変換された値を読み込む + // -1.0f <= AD変換された値 < 1.0f + virtual float Read(); + + protected: + ADC_TypeDef* const myAdc_; // AD 変換器に対応するポインタ + + float ToFloat(uint16_t x) { return AMP_*(x - 2048); } + + private: + static const float AMP_ = 1.0f/2048.0f; + // AD 変換器の外部トリガに使うタイマ (TIM8) の設定 + // fSampling 標本化周波数 [kHz] + void SetTim8(float fSampling); + + // コピー・コンストラクタ禁止のため + AdcF446(const AdcF446&); + // 代入演算子禁止のため + AdcF446& operator=(const AdcF446&); + }; +} +#endif // ADC_F446_POLLING_HPP +