AM中波放送用SDR.CICフィルタのみを使用.CQ出版社「トランジスタ技術」誌,2021年4月号に掲載

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers F446_ADC_Intr.hpp Source File

F446_ADC_Intr.hpp

00001 //-------------------------------------------------------------
00002 //  F446 内蔵 ADC を割込み方式で使うための派生クラス
00003 //      基底クラス: AdcF446_Base
00004 //
00005 //  2020/07/24, Copyright (c) 2020 MIKAMI, Naoki
00006 //-------------------------------------------------------------
00007 
00008 #include "F446_ADC_Base.hpp"
00009 
00010 #ifndef ADC_F446_INTERRUPT_HPP
00011 #define ADC_F446_INTERRUPT_HPP
00012 
00013 namespace Mikami
00014 {
00015     class AdcF446_Intr : public AdcF446_Base
00016     {
00017     public:
00018         // コンストラクタ
00019         //      fSampling   標本化周波数 [kHz]
00020         //      pin       入力ピンの名前
00021         AdcF446_Intr(float fSampling, PinName pin)
00022             : AdcF446_Base(fSampling, pin)
00023         {   myAdc_->CR1 |= ADC_CR1_EOCIE; }     // AD 変換終了割り込みを許可
00024 
00025         virtual ~AdcF446_Intr() {}
00026 
00027         // 割込みベクタの設定と AD 変換割込みを有効にする
00028         void SetIntrVec(void (*Func)())
00029         {
00030             NVIC_SetVector(ADC_IRQn, (uint32_t)Func);   // "core_cm4.h" 参照
00031             NVIC_EnableIRQ(ADC_IRQn);                   // "core_cm4.h" 参照
00032         }    
00033 
00034         // AD 変換された値を読み込む
00035         //      -1.0f <= AD変換された値 < 1.0f
00036         virtual float Read() { return ToFloat(myAdc_->DR); }
00037 
00038     private:
00039         // コピー・コンストラクタ,代入演算子禁止の禁止のため
00040         AdcF446_Intr(const AdcF446_Intr&);
00041         AdcF446_Intr& operator=(const AdcF446_Intr&);
00042     };
00043 }
00044 #endif  // ADC_F446_INTERRUPT_HPP