Michele Furlanetto / Mbed 2 deprecated mbed_keyboard

Dependencies:   TextLCD mbed MMA8451Q TSI

Committer:
mfurlanetto
Date:
Sat Sep 19 10:04:37 2015 +0000
Revision:
8:60231840370f
Parent:
6:459ddd3079fa
Child:
10:6e18b220e10c
Aggiunta le gestione delle ottave

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfurlanetto 6:459ddd3079fa 1 #include "mbed.h"
mfurlanetto 8:60231840370f 2
mfurlanetto 8:60231840370f 3 #ifndef SPEAKER
mfurlanetto 8:60231840370f 4 #define SPEAKER
mfurlanetto 6:459ddd3079fa 5 // new class to play a note on Speaker based on PwmOut class
mfurlanetto 6:459ddd3079fa 6 // based on zchen311 implementation
mfurlanetto 6:459ddd3079fa 7 // http://mbed.org/users/zchen311/code/Speaker/
mfurlanetto 6:459ddd3079fa 8 class Speaker
mfurlanetto 6:459ddd3079fa 9 {
mfurlanetto 6:459ddd3079fa 10 public:
mfurlanetto 6:459ddd3079fa 11 Speaker(PinName pin) : _pin(pin) {
mfurlanetto 6:459ddd3079fa 12 // _pin(pin) means pass pin to the Speaker Constructor
mfurlanetto 6:459ddd3079fa 13 frequency=0;
mfurlanetto 6:459ddd3079fa 14 _volume=0.2;
mfurlanetto 6:459ddd3079fa 15 }
mfurlanetto 6:459ddd3079fa 16 // class method to play a note based on PwmOut class
mfurlanetto 8:60231840370f 17 void changeFrequency(double delta) {
mfurlanetto 6:459ddd3079fa 18 frequency+=delta;
mfurlanetto 6:459ddd3079fa 19 if(frequency >0){
mfurlanetto 6:459ddd3079fa 20 _pin.period(1.0/frequency);
mfurlanetto 6:459ddd3079fa 21 _pin = _volume/2.0;
mfurlanetto 6:459ddd3079fa 22 } else {
mfurlanetto 6:459ddd3079fa 23 _pin = 0;
mfurlanetto 8:60231840370f 24 frequency=0;
mfurlanetto 6:459ddd3079fa 25 }
mfurlanetto 6:459ddd3079fa 26 }
mfurlanetto 8:60231840370f 27 double getFreq(){
mfurlanetto 6:459ddd3079fa 28 return frequency;
mfurlanetto 6:459ddd3079fa 29 }
mfurlanetto 6:459ddd3079fa 30 float* getVolumeBuffer(){
mfurlanetto 6:459ddd3079fa 31 return &_volume;
mfurlanetto 6:459ddd3079fa 32 }
mfurlanetto 6:459ddd3079fa 33 private:
mfurlanetto 6:459ddd3079fa 34 PwmOut _pin;
mfurlanetto 6:459ddd3079fa 35 float _volume;
mfurlanetto 8:60231840370f 36 double frequency;
mfurlanetto 8:60231840370f 37 };
mfurlanetto 8:60231840370f 38
mfurlanetto 8:60231840370f 39 #endif