Nucleo-F446RE 内蔵の AD/DA を使うためのライブラリ.DA からの出力は,標本化周波数の4倍のレートで行う.  このライブラリを登録した際のプログラム: Demo_F446_AD_DA_Multirate. Library for built-in ADC and DAC in Nucleo-F446RE. Sampling rate for DAC is four times of that for ADC.

Dependencies:   Array_Matrix

Dependents:   F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver Demo_F446_AD_DA_Multirate ... more

Revision:
0:2447a7d225b1
Child:
2:b55ae17ffd92
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/F446_DAC.cpp	Wed May 16 01:40:50 2018 +0000
@@ -0,0 +1,47 @@
+//--------------------------------------------------------
+//  Class for buit-in single DAC on STM32F446
+//
+//  STM32F446 内蔵の DAC 用のクラス
+//      DAC_OUT1: A2  (PA_4)
+//      DAC_OUT2: D13 (PA_5)
+//
+//  2018/04/16, Copyright (c) 2018 MIKAMI, Naoki
+//--------------------------------------------------------
+
+#include "F446_DAC.hpp"
+
+namespace Mikami
+{
+    DacF446::DacF446(PinName pin) : da_(pin)
+    {
+        if ( (pin != A2) && (pin != D13) )
+        {
+            fprintf(stderr, "Invalid pin name\r\n");
+            while (true) {}
+        }
+        if (pin == A2)
+        {
+            DAC->CR = DAC_CR_EN1 | DAC_CR_TEN1 | DAC_CR_TSEL1;
+            fpWriteDac = &DacF446::WriteDac1;
+        }
+        else
+        {
+            DAC->CR = DAC_CR_EN2 | DAC_CR_TEN2 | DAC_CR_TSEL2;
+            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;
+    }
+}
+