Simplified oscilloscope using DISCO-F746. Input: MEMS microphone. DISCO-F746 による簡易オシロスコープ.入力:MEMS マイク.
Dependencies: F746_GUI F746_SAI_IO mbed
main.cpp@1:a53d220362d4, 2017-03-15 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Wed Mar 15 02:03:39 2017 +0000
- Revision:
- 1:a53d220362d4
- Parent:
- 0:5acef847513d
- Child:
- 2:1fa4647505bf
2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:5acef847513d | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:5acef847513d | 2 | // MEMS マイクから CODEC を使って入力したサウンド信号の波形の表示 |
MikamiUitOpen | 0:5acef847513d | 3 | // 標本化周波数: 16 kHz |
MikamiUitOpen | 0:5acef847513d | 4 | // |
MikamiUitOpen | 0:5acef847513d | 5 | // ライブラリのリビジョン: |
MikamiUitOpen | 0:5acef847513d | 6 | // BSP_DISCO_F746NG rev.5 |
MikamiUitOpen | 0:5acef847513d | 7 | // mbed rev.131 |
MikamiUitOpen | 0:5acef847513d | 8 | // |
MikamiUitOpen | 1:a53d220362d4 | 9 | // 2017/03/15, Copyright (c) 2017 MIKAMI, Naoki |
MikamiUitOpen | 0:5acef847513d | 10 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:5acef847513d | 11 | |
MikamiUitOpen | 1:a53d220362d4 | 12 | #include "SAI_InOut.hpp" // 自作 SAI 用ライブラリ |
MikamiUitOpen | 1:a53d220362d4 | 13 | #include "F746_GUI.hpp" // 自作 GUI 用ライブラリ |
MikamiUitOpen | 1:a53d220362d4 | 14 | #include "WaveformDisplay.hpp" // 波形表示用 |
MikamiUitOpen | 1:a53d220362d4 | 15 | using namespace Mikami; // 自作ライブラリで使っている名前空間 |
MikamiUitOpen | 0:5acef847513d | 16 | |
MikamiUitOpen | 0:5acef847513d | 17 | int main() |
MikamiUitOpen | 0:5acef847513d | 18 | { |
MikamiUitOpen | 1:a53d220362d4 | 19 | Label title(240, 12, "Simplified Oscilloscope", |
MikamiUitOpen | 1:a53d220362d4 | 20 | Label::CENTER, Font20); |
MikamiUitOpen | 0:5acef847513d | 21 | |
MikamiUitOpen | 1:a53d220362d4 | 22 | const uint32_t N_DATA = 420; // 表示するデータ数 |
MikamiUitOpen | 0:5acef847513d | 23 | Array<int16_t> xn(N_DATA); // 表示で使うデータ |
MikamiUitOpen | 0:5acef847513d | 24 | // 波形表示用のオブジェクト生成 |
MikamiUitOpen | 1:a53d220362d4 | 25 | WaveformDisplay waveDisp(GuiBase::GetLcdPtr(), 30, 130, |
MikamiUitOpen | 1:a53d220362d4 | 26 | xn, GuiBase::ENUM_BACK); |
MikamiUitOpen | 0:5acef847513d | 27 | |
MikamiUitOpen | 1:a53d220362d4 | 28 | // 入力の再開と中断のためのオブジェクトの生成 |
MikamiUitOpen | 1:a53d220362d4 | 29 | ButtonGroup runStop(365, 235, 55, 35, 2, |
MikamiUitOpen | 1:a53d220362d4 | 30 | (string[]){"RUN", "STOP"}, |
MikamiUitOpen | 1:a53d220362d4 | 31 | 5, 0, 2, 0); |
MikamiUitOpen | 0:5acef847513d | 32 | |
MikamiUitOpen | 1:a53d220362d4 | 33 | // サウンド信号入力用 SAI オブジェクト生成,入力:MEMS マイク |
MikamiUitOpen | 0:5acef847513d | 34 | SaiIO mySai(SaiIO::INPUT, N_DATA, I2S_AUDIOFREQ_16K, |
MikamiUitOpen | 0:5acef847513d | 35 | INPUT_DEVICE_DIGITAL_MICROPHONE_2); |
MikamiUitOpen | 0:5acef847513d | 36 | mySai.RecordIn(); // 入力開始 |
MikamiUitOpen | 0:5acef847513d | 37 | |
MikamiUitOpen | 0:5acef847513d | 38 | while (true) |
MikamiUitOpen | 0:5acef847513d | 39 | { |
MikamiUitOpen | 1:a53d220362d4 | 40 | int num; |
MikamiUitOpen | 1:a53d220362d4 | 41 | if (runStop.GetTouchedNumber(num)) |
MikamiUitOpen | 0:5acef847513d | 42 | { |
MikamiUitOpen | 1:a53d220362d4 | 43 | if (num == 0) mySai.ResumeIn(); // 入力再開 |
MikamiUitOpen | 1:a53d220362d4 | 44 | else mySai.PauseIn(); // 入力中断 |
MikamiUitOpen | 0:5acef847513d | 45 | } |
MikamiUitOpen | 0:5acef847513d | 46 | |
MikamiUitOpen | 0:5acef847513d | 47 | if (mySai.IsCaptured()) // 入力データがそろったら波形を表示する |
MikamiUitOpen | 0:5acef847513d | 48 | { |
MikamiUitOpen | 0:5acef847513d | 49 | for (int n=0; n<N_DATA; n++) |
MikamiUitOpen | 0:5acef847513d | 50 | mySai.Input(xn[n], xn[n]); // 片方のチャンネルのみ表示 |
MikamiUitOpen | 0:5acef847513d | 51 | waveDisp.Execute(); // 波形の表示 |
MikamiUitOpen | 0:5acef847513d | 52 | } |
MikamiUitOpen | 0:5acef847513d | 53 | } |
MikamiUitOpen | 0:5acef847513d | 54 | } |