Simplified oscilloscope using DISCO-F746. Input: MEMS microphone. DISCO-F746 による簡易オシロスコープ.入力:MEMS マイク.
Dependencies: F746_GUI F746_SAI_IO mbed
main.cpp
- Committer:
- MikamiUitOpen
- Date:
- 2017-03-16
- Revision:
- 3:dc29fbcf1b48
- Parent:
- 2:1fa4647505bf
- Child:
- 4:ff897824d92a
File content as of revision 3:dc29fbcf1b48:
//-------------------------------------------------------------- // MEMS マイクから CODEC を使って入力したサウンド信号の波形の表示 // 標本化周波数: 16 kHz // // ライブラリのリビジョン: // BSP_DISCO_F746NG rev.5 // mbed rev.138 // // 2017/03/16, Copyright (c) 2017 MIKAMI, Naoki //-------------------------------------------------------------- #include "SAI_InOut.hpp" // 自作 SAI 用ライブラリ #include "F746_GUI.hpp" // 自作 GUI 用ライブラリ #include "WaveformDisplay.hpp" // 波形表示用 using namespace Mikami; // 自作ライブラリで使っている名前空間 int main() { Label title(240, 12, "Simplified Oscilloscope", Label::CENTER, Font20); const uint32_t N_DATA = 420; // 表示するデータ数 Array<int16_t> xn(N_DATA); // 表示で使うデータ // 波形表示用のオブジェクト生成 WaveformDisplay waveDisp(GuiBase::GetLcd(), 30, 130, xn, GuiBase::ENUM_BACK); // 入力の再開と中断のためのオブジェクトの生成 ButtonGroup runStop(365, 235, 55, 35, 2, (string[]){"RUN", "STOP"}, 5, 0, 2, 0); // サウンド信号入力用 SAI オブジェクト生成,入力:MEMS マイク SaiIO mySai(SaiIO::INPUT, N_DATA, I2S_AUDIOFREQ_16K, INPUT_DEVICE_DIGITAL_MICROPHONE_2); mySai.RecordIn(); // 入力開始 while (true) { int num; if (runStop.GetTouchedNumber(num)) { if (num == 0) mySai.ResumeIn(); // 入力再開 else mySai.PauseIn(); // 入力中断 } if (mySai.IsCaptured()) // 入力データがそろったら波形を表示する { for (int n=0; n<N_DATA; n++) mySai.Input(xn[n], xn[n]); // 片方のチャンネルのみ表示 waveDisp.Execute(); // 波形の表示 } } }