STM32F446 の内蔵 ADC, DAC 用のライブラリ.このライブラリを登録した際のプログラム: Demo_DSP_ADDA. Library for build-in ADC and DAC in STM32F446.

Dependents:   Demo_DSP_ADDA F446_DSP_FFT_Analyzer TrG_FFT_Analyzer DSP_MultirateLinearphase ... more

Committer:
MikamiUitOpen
Date:
Sun Dec 20 08:04:35 2020 +0000
Revision:
3:a1dcee67c67e
Parent:
1:d6121b7a8d51
4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 1:d6121b7a8d51 1 //-----------------------------------------------------------------
MikamiUitOpen 1:d6121b7a8d51 2 // STM32F446 内蔵 ADC を割込み方式で使うための派生クラス(ヘッダ)
MikamiUitOpen 0:85348d58f498 3 // 基底クラス: DspAdc_Base
MikamiUitOpen 0:85348d58f498 4 //
MikamiUitOpen 3:a1dcee67c67e 5 // 2020/12/20, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 1:d6121b7a8d51 6 //-----------------------------------------------------------------
MikamiUitOpen 0:85348d58f498 7
MikamiUitOpen 0:85348d58f498 8 #include "DSP_AdcBase.hpp"
MikamiUitOpen 0:85348d58f498 9
MikamiUitOpen 0:85348d58f498 10 #ifndef DSP_ADC_INTERRUPT_HPP
MikamiUitOpen 0:85348d58f498 11 #define DSP_ADC_INTERRUPT_HPP
MikamiUitOpen 0:85348d58f498 12
MikamiUitOpen 0:85348d58f498 13 namespace Mikami
MikamiUitOpen 0:85348d58f498 14 {
MikamiUitOpen 3:a1dcee67c67e 15 class DspAdcIntr : public DspAdcBase
MikamiUitOpen 0:85348d58f498 16 {
MikamiUitOpen 0:85348d58f498 17 public:
MikamiUitOpen 0:85348d58f498 18 // コンストラクタ
MikamiUitOpen 0:85348d58f498 19 // fSampling 標本化周波数 [kHz]
MikamiUitOpen 0:85348d58f498 20 // pin 入力ピンの名前
MikamiUitOpen 0:85348d58f498 21 // adc AD 変換器: ADC1, ADC2, ADC3 のいずれか
MikamiUitOpen 3:a1dcee67c67e 22 DspAdcIntr(float fSampling, PinName pin, ADC_TypeDef* const adc = ADC2)
MikamiUitOpen 3:a1dcee67c67e 23 : DspAdcBase(fSampling, pin, adc)
MikamiUitOpen 0:85348d58f498 24 { myAdc_->CR1 |= ADC_CR1_EOCIE; } // AD 変換終了割込みを許可
MikamiUitOpen 0:85348d58f498 25
MikamiUitOpen 3:a1dcee67c67e 26 virtual ~DspAdcIntr() {}
MikamiUitOpen 0:85348d58f498 27
MikamiUitOpen 0:85348d58f498 28 // 割込みベクタの設定と AD 変換割込みを有効にする
MikamiUitOpen 1:d6121b7a8d51 29 void SetIntrVec(void (*Func)());
MikamiUitOpen 0:85348d58f498 30
MikamiUitOpen 0:85348d58f498 31 // AD 変換された値を読み込む
MikamiUitOpen 0:85348d58f498 32 // -1.0f <= AD変換された値 < 1.0f
MikamiUitOpen 0:85348d58f498 33 virtual float Read() const { return AdcToFloat(); }
MikamiUitOpen 0:85348d58f498 34
MikamiUitOpen 0:85348d58f498 35 private:
MikamiUitOpen 0:85348d58f498 36 static void (*fp_)(); // 割込みサービス・ルーチンの中で実行される関数のポインタ
MikamiUitOpen 0:85348d58f498 37
MikamiUitOpen 0:85348d58f498 38 // 割込みサービス・ルーチン,このクラスで使っている ADC の割込みであれば,
MikamiUitOpen 0:85348d58f498 39 // NVIC_SetVector() の引数で割り当てられた処理を行う
MikamiUitOpen 0:85348d58f498 40 static void Isr()
MikamiUitOpen 0:85348d58f498 41 { if ((myAdc_->SR & ADC_SR_EOC_Msk) == ADC_SR_EOC) fp_(); }
MikamiUitOpen 0:85348d58f498 42 };
MikamiUitOpen 0:85348d58f498 43 }
MikamiUitOpen 0:85348d58f498 44 #endif // DSP_ADC_INTERRUPT_HPP