Nucleo-F446RE 内蔵の AD/DA を使うためのライブラリ.DA からの出力は,標本化周波数の4倍のレートで行う.出力の補間フィルタには直線位相の FIR フィルタを使用.  このライブラリを登録した際のプログラム: Demo_F446_AD_DA_MultirateLinearPhase. Library for built-in ADC and DAC in Nucleo-F446RE. Sampling rate for DAC is four times of that for ADC. Interpolation filter for output is linear-phase FIR filter.

Dependencies:   Array_Matrix

Dependents:   Demo_F446_AD_DA_MultirateLinearPhase

Files at this revision

API Documentation at this revision

Comitter:
MikamiUitOpen
Date:
Wed Nov 28 12:45:18 2018 +0000
Parent:
0:ad30ac2b412b
Commit message:
2

Changed in this revision

F446_DAC.cpp Show annotated file Show diff for this revision Revisions of this file
F446_DAC.hpp Show annotated file Show diff for this revision Revisions of this file
--- a/F446_DAC.cpp	Tue Jul 03 01:29:13 2018 +0000
+++ b/F446_DAC.cpp	Wed Nov 28 12:45:18 2018 +0000
@@ -5,7 +5,7 @@
 //      DAC_OUT1: A2  (PA_4)
 //      DAC_OUT2: D13 (PA_5)
 //
-//  2018/04/16, Copyright (c) 2018 MIKAMI, Naoki
+//  2018/11/28, Copyright (c) 2018 MIKAMI, Naoki
 //--------------------------------------------------------
 
 #include "F446_DAC.hpp"
@@ -21,26 +21,14 @@
         }
         if (pin == A2)
         {
-            DAC->CR = DAC_CR_EN1 | DAC_CR_TEN1 | DAC_CR_TSEL1;
+            DAC->CR = DAC_CR_EN1;
             fpWriteDac = &DacF446::WriteDac1;
         }
         else
         {
-            DAC->CR = DAC_CR_EN2 | DAC_CR_TEN2 | DAC_CR_TSEL2;
+            DAC->CR = DAC_CR_EN2;
             fpWriteDac = &DacF446::WriteDac2;
         }
     }
+}
 
-    // DAC の CH1 へ出力する
-    void DacF446::WriteDac1(uint16_t val)
-    {
-        DAC->DHR12R1 = val;
-        DAC->SWTRIGR = DAC_SWTRIGR_SWTRIG1;
-    }
-    // DAC の CH2 へ出力する
-    void DacF446::WriteDac2(uint16_t val)
-    {
-        DAC->DHR12R2 = val;
-        DAC->SWTRIGR = DAC_SWTRIGR_SWTRIG2;
-    }
-}
--- a/F446_DAC.hpp	Tue Jul 03 01:29:13 2018 +0000
+++ b/F446_DAC.hpp	Wed Nov 28 12:45:18 2018 +0000
@@ -7,7 +7,7 @@
 //          D13 (PA_5): このポートはマイコンボードの LED もドライブするので
 //                       このポートは使わない方がよい
 //
-//  2018/05/16, Copyright (c) 2018 MIKAMI, Naoki
+//  2018/11/28, Copyright (c) 2018 MIKAMI, Naoki
 //--------------------------------------------------------
 
 #include "mbed.h"
@@ -32,7 +32,7 @@
         // -1.0f <= data <= 1.0f
         void Write(float data) { WriteDac(ToUint16(data)); }
 
-        // 0 <= data1<= 4095
+        // 0 <= data <= 4095
         void Write(uint16_t data) { WriteDac(__USAT(data, BIT_WIDTH_)); }
 
     private:
@@ -42,8 +42,8 @@
         AnalogOut da_;
 
         // DAC の片方のチェンネルへ出力する
-        void WriteDac1(uint16_t val);   // CH1 へ
-        void WriteDac2(uint16_t val);   // CH2 へ
+        void WriteDac1(uint16_t val) { DAC->DHR12R1 = val; }    // CH1 へ
+        void WriteDac2(uint16_t val) { DAC->DHR12R2 = val; }    // CH2 へ
         
         void WriteDac(uint16_t val) { (this->*fpWriteDac)(val); }
 
@@ -58,3 +58,4 @@
     };
 }
 #endif  // F446_DAC_SINGLE_HPP
+