PWM出力によって圧電スピーカーで容易に音を鳴らすことができるライブラリです。

Dependents:   kiokuryoku_game escapeFromYou junirobo_sample001 ROBOX_Sample_IRcon ... more

Committer:
RBH
Date:
Sat Oct 08 16:01:39 2016 +0000
Revision:
6:adb925f93199
Parent:
5:a64e653b0ce1
Child:
7:5f1b0adb25ec
???playing?????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RBH 0:c9832831c73f 1 #ifndef BEEP_SOUND_H
RBH 0:c9832831c73f 2 #define BEEP_SOUND_H
RBH 0:c9832831c73f 3 #include "mbed.h"
RBH 3:86238dba1529 4 #include <queue>
RBH 3:86238dba1529 5 struct gakuhu{
RBH 3:86238dba1529 6 int octave;
RBH 3:86238dba1529 7 int note;
RBH 3:86238dba1529 8 float time_s;
RBH 3:86238dba1529 9 };
RBH 4:237b642c2ffa 10 /*
RBH 4:237b642c2ffa 11 struct beep{
RBH 4:237b642c2ffa 12 float userPeriod;
RBH 4:237b642c2ffa 13 float userWrite;
RBH 4:237b642c2ffa 14 float time_s;
RBH 4:237b642c2ffa 15 }
RBH 4:237b642c2ffa 16 */
RBH 0:c9832831c73f 17 const int frequencyTable[] = {261, 277, 294, 311, 330, 349,
RBH 4:237b642c2ffa 18 370, 392, 415, 440, 466, 494, 100};
RBH 0:c9832831c73f 19
RBH 2:259899b723ab 20
RBH 0:c9832831c73f 21 class beep_sound
RBH 0:c9832831c73f 22 {
RBH 0:c9832831c73f 23 public:
RBH 0:c9832831c73f 24 beep_sound(PinName pwm);
RBH 0:c9832831c73f 25 ~beep_sound();
RBH 0:c9832831c73f 26 void SetFrequency(int octave, int note, bool on_off);
RBH 0:c9832831c73f 27 void onpu(int octave, int note, float time_s);
RBH 0:c9832831c73f 28 void sinwave(float center,int speed,int width);
RBH 0:c9832831c73f 29 void setwave(float frequency,float duty,float wait);
RBH 0:c9832831c73f 30 void beep_right(int nTimes);
RBH 0:c9832831c73f 31 void beep_wrong(int nTimes);
RBH 0:c9832831c73f 32 void beep_1up(int nTimes);
RBH 0:c9832831c73f 33 void beep_konbini(int nTimes);
RBH 2:259899b723ab 34 void beep_readyGo(int nTimes);
RBH 0:c9832831c73f 35 void beep_encount(int nTimes);
RBH 3:86238dba1529 36 // 以下並列で鳴らすための関数
RBH 5:a64e653b0ce1 37 void stop();
RBH 3:86238dba1529 38 void setGakuhu(int argOc, int argNo, float argTi);
RBH 3:86238dba1529 39 void setKyuhu(float argTi);
RBH 3:86238dba1529 40 void playGakuhu();
RBH 3:86238dba1529 41 void NoteOn(int octave, int note);
RBH 0:c9832831c73f 42 private:
RBH 0:c9832831c73f 43 PwmOut* m_pwm;
RBH 3:86238dba1529 44 int frequency;
RBH 3:86238dba1529 45 // 以下並列で鳴らすための宣言
RBH 3:86238dba1529 46 queue<gakuhu> otoQue;
RBH 4:237b642c2ffa 47 gakuhu bufG;
RBH 3:86238dba1529 48 Timeout interruptStop;
RBH 6:adb925f93199 49 // 再生中にキューにsetGakuhuをさせないためのフラグ
RBH 6:adb925f93199 50 bool playing; // false:停止中 true:再生中
RBH 0:c9832831c73f 51 };
RBH 0:c9832831c73f 52
RBH 0:c9832831c73f 53 #endif