Prototype program of AD and DA using classes in UIT_ADDA. This program does not use interrupt of ADC. This program also example of exchanging input channel for ST Nucleo F401RE. UIT_ADDA のクラスを使った AD および DA のためのプログラムで,入力の切り替えを行う場合の雛形.ADC の割り込みは使わないバージョン.ST Nucleo F401 用.

Dependencies:   UIT_ACM1602NI UIT_ADDA mbed

Committer:
MikamiUitOpen
Date:
Wed Dec 31 10:44:09 2014 +0000
Revision:
8:1b470cc97464
Parent:
6:f0ebd1e1dc43
9

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:473989635348 1 //--------------------------------------------------------------
MikamiUitOpen 0:473989635348 2 // 割り込みを使わずに AD DA を行う場合の雛形, 入力切替
MikamiUitOpen 0:473989635348 3 // Analog line Input : A0 (channel 1)
MikamiUitOpen 0:473989635348 4 // Analog mic. Input : A1 (channel 2)
MikamiUitOpen 0:473989635348 5 // Analog Output: MCP4922 using SPI
MikamiUitOpen 0:473989635348 6 // Switch : D2
MikamiUitOpen 6:f0ebd1e1dc43 7 // 2014/12/19, Copyright (c) 2014 MIKAMI, Naoki
MikamiUitOpen 0:473989635348 8 //--------------------------------------------------------------
MikamiUitOpen 0:473989635348 9
MikamiUitOpen 3:107eba32fd7f 10 #include "ADC_Base.hpp" // for ADC not using interrupt
MikamiUitOpen 0:473989635348 11 #include "DAC_MCP4922.hpp" // for DAC MCP4922
MikamiUitOpen 0:473989635348 12 #include "ACM1602NI.hpp" // for LCD display
MikamiUitOpen 0:473989635348 13
MikamiUitOpen 0:473989635348 14 using namespace Mikami;
MikamiUitOpen 0:473989635348 15
MikamiUitOpen 0:473989635348 16 const int FS_ = 10000; // Sampling frequency: 10 kHz
MikamiUitOpen 0:473989635348 17 ADC_Base adc_(A0, FS_, A1); // for AD
MikamiUitOpen 0:473989635348 18 DAC_MCP4922 myDac_; // for DA
MikamiUitOpen 0:473989635348 19
MikamiUitOpen 0:473989635348 20 DigitalIn sw_(D2, PullDown);
MikamiUitOpen 0:473989635348 21
MikamiUitOpen 0:473989635348 22 int main()
MikamiUitOpen 0:473989635348 23 {
MikamiUitOpen 1:5c7f4c52d797 24 myDac_.ScfClockTim3(420000); // cutoff frequency: 4.2 kHz
MikamiUitOpen 0:473989635348 25 int swBefore = 0;
MikamiUitOpen 0:473989635348 26
MikamiUitOpen 0:473989635348 27 while (true)
MikamiUitOpen 0:473989635348 28 {
MikamiUitOpen 0:473989635348 29 float xn = adc_.Read(); // Read from A0
MikamiUitOpen 0:473989635348 30 //-----------------------------------------------
MikamiUitOpen 0:473989635348 31 // Put signal processing program here
MikamiUitOpen 0:473989635348 32 //-----------------------------------------------
MikamiUitOpen 0:473989635348 33 myDac_.Write(xn); // Write to DAC
MikamiUitOpen 0:473989635348 34
MikamiUitOpen 0:473989635348 35 int swNow = sw_.read();
MikamiUitOpen 0:473989635348 36 if (swNow != swBefore)
MikamiUitOpen 0:473989635348 37 {
MikamiUitOpen 0:473989635348 38 if (swNow == 0) adc_.Select1stChannel(); // line input
MikamiUitOpen 0:473989635348 39 else adc_.Select2ndChannel(); // mic. input
MikamiUitOpen 0:473989635348 40 swBefore = swNow;
MikamiUitOpen 0:473989635348 41 }
MikamiUitOpen 0:473989635348 42 }
MikamiUitOpen 0:473989635348 43 }