Input channele exchange and display the channel on LCD (ACM1602Ni) for ST Nucleo F401RE.

Dependencies:   UIT_ACM1602NI UIT_ADDA mbed

Files at this revision

API Documentation at this revision

Comitter:
MikamiUitOpen
Date:
Fri Dec 26 00:30:30 2014 +0000
Commit message:
1

Changed in this revision

UIT_ACM1602NI.lib Show annotated file Show diff for this revision Revisions of this file
UIT_ADDA.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UIT_ACM1602NI.lib	Fri Dec 26 00:30:30 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/MikamiUitOpen/code/UIT_ACM1602NI/#b911485a6f4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UIT_ADDA.lib	Fri Dec 26 00:30:30 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/MikamiUitOpen/code/UIT_ADDA/#6c60601c1834
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Dec 26 00:30:30 2014 +0000
@@ -0,0 +1,49 @@
+//--------------------------------------------------------------
+// 入力の切り替え(ラインとマイク),LCD 表示 ---- 割り込み利用
+//      Analog Input : A0
+//      Analog Output: MCP4922 using SPI
+// 2014/12/26, Copyright (c) 2014 MIKAMI, Naoki
+//--------------------------------------------------------------
+
+#include "ADC_Interrupt.hpp"    // for ADC using interrupt
+#include "DAC_MCP4922.hpp"      // for DAC MCP4922
+#include "ACM1602NI.hpp"        // for LCD
+
+using namespace Mikami;
+
+const int FS_ = 10000;          // Sampling frequency: 10 kHz
+ADC_Intr adc_(A0, FS_, A1);     // CH1: Line, CH2: Mic
+DAC_MCP4922 myDac_;             // for DA
+DigitalIn sw_(D2, PullDown);    // for SW
+Acm1602Ni lcd_;                 // for LCD
+
+// Interrupt service routine for ADC
+void AdcIsr()
+{   
+    float xn = adc_.Read(); // Read from A0
+    myDac_.Write(xn);       // to DAC
+}
+
+int main()
+{
+    lcd_.Clear();
+    myDac_.ScfClockTim3(420000);    // cutoff frequency: 4.2 kHz
+    adc_.SetIntrVec(AdcIsr);        // Assign ISR for ADC interrupt
+
+    int swBefore = 0;
+
+    while (true)
+    {
+        int swNow = sw_.read();
+        if (swNow != swBefore)
+        {
+            if (swNow == 0) adc_.Select1stChannel(); // line input
+            else            adc_.Select2ndChannel(); // mic. input
+            swBefore = swNow;
+        }   
+
+        if (swNow == 0) lcd_.WriteStringXY("Input: Line", 0, 0);
+        else            lcd_.WriteStringXY("Input: Mic ", 0, 0);
+        wait(0.1f);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Dec 26 00:30:30 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/4fc01daae5a5
\ No newline at end of file