Prototype program of AD and DA using classes in UIT_ADDA. This program uses interrupt of ADC for ST Nucleo F401RE. UIT_ADDA のクラスを使った AD および DA のためのプログラムの雛形.ADC の割り込みを使うバージョン.ST Nucleo F401 用.

Dependencies:   UIT_ADDA mbed

Revision:
0:00e1dcdfaaad
Child:
1:e5e7a45f0cd6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Oct 20 07:59:05 2014 +0000
@@ -0,0 +1,37 @@
+//--------------------------------------------------------------
+// 割り込みを使って AD DA を行う場合の雛形1(入力:1 チャンネル)
+//      Analog Input : A0
+//      Analog Output: MCP4922 using SPI
+// 2014/10/20, Copyright (c) 2014 MIKAMI, Naoki
+//--------------------------------------------------------------
+
+#include "mbed.h"
+
+#include "ADC_Interrupt.hpp"    // for ADC using interrupt
+#include "DAC_MCP4922.hpp"      // for DAC MCP4922
+#include "ScfClockTim3.hpp"     // for clock supplied to SCF
+
+using namespace Mikami;
+
+const int FS_ = 10000;          // Sampling frequency: 24 kHz
+ADC_Intr adc_(A0, FS_, A1, A2);         // for AD
+DAC_MCP4922 myDac_(DAC_MCP4922::DAC_A); // for DA
+
+uint16_t a2_ = 0;
+uint16_t a21_ = 0;
+float vol_ = 1.0f;
+
+// Interrupt service routine for ADC
+void AdcIsr()
+{   
+    float xn = adc_.Read(); // Read from A0
+    myDac_.Write(xn);       // to DAC
+}
+
+int main()
+{
+    ScfClockTim3(420000);      // cutoff frequency: 4.2 kHz
+    adc_.SetIntrVec(AdcIsr);    // Assign ISR for ADC interrupt
+
+    while (true) {}
+}