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_AdcDualIntr.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2020-09-22
- Revision:
- 0:c02c700a8ecf
- Child:
- 1:e1c5baa559de
File content as of revision 0:c02c700a8ecf:
//------------------------------------------------------------- // STM32F446 内蔵 ADC を割り込み方式で使うための派生クラス // 基底クラス: DspAdcDual_Base // // 2020/09/22, Copyright (c) 2020 MIKAMI, Naoki //------------------------------------------------------------- #include "DSP_AdcDualBase.hpp" #ifndef DSP_ADC_DUAL_INTERRUPT_HPP #define DSP_ADC_DUAL_INTERRUPT_HPP namespace Mikami { class DspAdcDualIntr : public DspAdcDualBase { public: // コンストラクタ // fSampling 標本化周波数 [kHz] // pinCh1 チャンネル 1 に対応する入力ピンの名前 // pinCh2 チャンネル 2 に対応する入力ピンの名前 DspAdcDualIntr(float fSampling, PinName pinCh1, PinName pinCh2) : DspAdcDualBase(fSampling, pinCh1, pinCh2) { adcCh1_->CR1 |= ADC_CR1_EOCIE; } virtual ~DspAdcDualIntr() {} // AD 変換された値を読み込む // -1.0f <= AD変換された値 < 1.0f virtual void Read(float &ad1, float &ad2) const { ad1 = ToFloat(adcCh1_->DR); ad2 = ToFloat(adcCh2_->DR); } // 割り込みベクタの設定と ADC 割り込みの有効化 void SetIntrVec(void (*Func)()) { NVIC_SetVector(ADC_IRQn, (uint32_t)Func); // See "cmsis_nvic.h" NVIC_EnableIRQ(ADC_IRQn); // See "core_cm4.h" } // ADC 割込みを有効にする void EnableAdcIntr() { NVIC_EnableIRQ(ADC_IRQn); } // ADC 割込みを無効にする void DisableAdcIntr() { NVIC_DisableIRQ(ADC_IRQn); } private: // コピー・コンストラクタ,代入演算子の禁止のため DspAdcDualIntr(const DspAdcDualIntr&); DspAdcDualIntr& operator=(const DspAdcDualIntr&); }; } #endif // DSP_ADC_DUAL_INTERRUPT_HPP