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

Revision:
0:85348d58f498
Child:
1:d6121b7a8d51
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DSP_AdcIntr.hpp	Thu May 21 10:42:04 2020 +0000
@@ -0,0 +1,52 @@
+//-------------------------------------------------------------
+//  STM32F446 内蔵 ADC を割込み方式で使うための派生クラス
+//      基底クラス: DspAdc_Base
+//
+//  2020/05/21, Copyright (c) 2020 MIKAMI, Naoki
+//-------------------------------------------------------------
+
+#include "DSP_AdcBase.hpp"
+
+#ifndef DSP_ADC_INTERRUPT_HPP
+#define DSP_ADC_INTERRUPT_HPP
+
+namespace Mikami
+{
+    class DspAdc_Intr : public DspAdc_Base
+    {
+    public:
+        // コンストラクタ
+        //      fSampling   標本化周波数 [kHz]
+        //      pin         入力ピンの名前
+        //      adc         AD 変換器: ADC1, ADC2, ADC3 のいずれか
+        DspAdc_Intr(float fSampling, PinName pin, ADC_TypeDef* const adc = ADC2)
+            : DspAdc_Base(fSampling, pin, adc)
+        {   myAdc_->CR1 |= ADC_CR1_EOCIE; }     // AD 変換終了割込みを許可
+
+        virtual ~DspAdc_Intr() {}
+
+        // 割込みベクタの設定と AD 変換割込みを有効にする
+        void SetIntrVec(void (*Func)())
+        {
+            fp_ = Func;         // 引数として渡された処理を割り当てる
+            NVIC_SetVector(ADC_IRQn, (uint32_t)Isr);    // "core_cm4.h" 参照
+            NVIC_EnableIRQ(ADC_IRQn);                   // "core_cm4.h" 参照
+        }    
+
+        // AD 変換された値を読み込む
+        //      -1.0f <= AD変換された値 < 1.0f
+        virtual float Read() const { return AdcToFloat(); }
+
+    private:
+        static void (*fp_)();   // 割込みサービス・ルーチンの中で実行される関数のポインタ
+
+        // 割込みサービス・ルーチン,このクラスで使っている ADC の割込みであれば,
+        // NVIC_SetVector() の引数で割り当てられた処理を行う
+        static void Isr()
+        {   if ((myAdc_->SR & ADC_SR_EOC_Msk) == ADC_SR_EOC) fp_(); }
+    };
+
+    // static メンバの実体
+    void (*DspAdc_Intr::fp_)();
+}
+#endif  // DSP_ADC_INTERRUPT_HPP
\ No newline at end of file