STM32F446内蔵のADC, DAC を 2 チャンネルで使うためのライブラリの使用例. Example program of library for build-in ADC and DAC in STM32F446 using with dual channels.

Dependencies:   mbed SerialTxRxIntr DSP_ADDA_Dual

Revision:
3:711a072f2898
Parent:
2:1bbea6a4a5b2
--- a/main.cpp	Sat Nov 07 02:13:43 2020 +0000
+++ b/main.cpp	Tue Jun 29 01:05:06 2021 +0000
@@ -4,7 +4,9 @@
 //      処理の内容:AD 変換器からの入力をそのまま DA 変換器に出力する
 //      ポーリング方式と割り込み方式の2つの例を示す
 //
-//  2020/11/07, Copyright (c) 2020 MIKAMI, Naoki
+//      割り込み方式では標本化周波数を PC のターミナル・ソフトで変更できる
+//
+//  2021/06/29, Copyright (c) 2021 MIKAMI, Naoki
 //----------------------------------------------------------------------
 
 #include "DSP_DacDual.hpp"
@@ -12,8 +14,8 @@
 #pragma diag_suppress 870   // マルチバイト文字使用の警告抑制のため
 using namespace Mikami;
 
-// 割り込みの例を有効にする場合,次の #define 文を有効にすること
-//#define ADC_EXAMPLE_OF_INTERRUPT
+// ポーリングの例を有効にする場合,次の #define 文を無効にすること
+#define ADC_EXAMPLE_OF_INTERRUPT
 
 //----------------------------------------------------------------
 // ポーリングを使う例
@@ -57,10 +59,14 @@
 {
     printf("\r\n割り込み方式\r\n");
     printf("起動時の標本化周波数: 10 kHz, 標本化周波数を変更できます\r\n");
-    SerialRxTxIntr rxTx;   // Serial クラスの受送信割込み用オブジェクト
+    SerialRxTxIntr rxTx;    // Serial クラスの受送信割込み用オブジェクト
     rxTx.EchobackEnable();
 
     myAdc_.SetIntrVec(&AdcIsr);
+    myAdc_.DisableIntr();   // 一旦,AD 変換k終了割り込みを禁止する
+    printf("Enter キーを押すと開始します\r\n");
+    while (!rxTx.IsEol()) {}
+    myAdc_.EnableIntr();    // AD 変換k終了割り込みを許可する
 
     rxTx.TxString("標本化周波数 [kHz] ? ");
     while (true)