STM32F446 の内蔵 ADC, DAC を 2 チャンネルで使うためのライブラリ.このライブラリを登録した際のプログラム: Demo_DSP_ADDA_Dual. Library for build-in ADC and DAC in STM32F446 using with dual channels.
Dependents: F446_DSP_Oscilloscope Demo_DSP_ADDA_Dual TrG_Oscilloscope
DSP_AdcDualPolling.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2021-06-29
- Revision:
- 3:a3148d75c1ea
- Parent:
- 0:c02c700a8ecf
File content as of revision 3:a3148d75c1ea:
//------------------------------------------------------------- // STM32F446 内蔵 ADC をポーリング方式で使うための派生クラス // 基底クラス: DspAdcDualBase // // 2020/09/22, Copyright (c) 2020 MIKAMI, Naoki //------------------------------------------------------------- #include "DSP_AdcDualBase.hpp" #ifndef DSP_ADC_DUAL_POLLING_HPP #define DSP_ADC_DUAL_POLLING_HPP namespace Mikami { class DspAdcDualPolling : public DspAdcDualBase { public: // コンストラクタ // fSampling 標本化周波数 [kHz] // pinCh1 チャンネル 1 に対応する入力ピンの名前 // pinCh2 チャンネル 2 に対応する入力ピンの名前 DspAdcDualPolling(float fSampling, PinName pinCh1, PinName pinCh2) : DspAdcDualBase(fSampling, pinCh1, pinCh2) {} virtual ~DspAdcDualPolling() {} // AD 変換された値を読み込む // -1.0f <= AD変換された値 < 1.0f virtual void Read(float &ad1, float &ad2) const { while((ADC->CSR & EOC23_) != EOC23_) {} // AD 変換が完了するまで待つ ad1 = ToFloat(adcCh1_->DR); ad2 = ToFloat(adcCh2_->DR); } private: static const uint32_t EOC23_ = ADC_CSR_EOC2 | ADC_CSR_EOC3; // コピー・コンストラクタ,代入演算子の禁止のため DspAdcDualPolling(const DspAdcDualPolling&); DspAdcDualPolling& operator=(const DspAdcDualPolling&); }; } #endif // DSP_ADC_DUAL_POLLING_HPP