beep library

Dependents:   ParkingSENSOR ParkingSENSOR AwesomeAlarm_BLE DrivingLayerV0004 ... more

Committer:
Reniboy
Date:
Thu May 05 00:28:41 2016 +0000
Revision:
0:01eac446ef9f
Child:
1:622b1d533a1c
Working version 1.0;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reniboy 0:01eac446ef9f 1 #ifndef MBED_BEEP_H
Reniboy 0:01eac446ef9f 2 #define MBED_BEEP_H
Reniboy 0:01eac446ef9f 3
Reniboy 0:01eac446ef9f 4 #include "mbed.h"
Reniboy 0:01eac446ef9f 5
Reniboy 0:01eac446ef9f 6 /** class to make sound with a buzzer, roughly based on a library created by Peter Drescher
Reniboy 0:01eac446ef9f 7 * The class use a timeout to switch off the sound - it is not blocking while making noise
Reniboy 0:01eac446ef9f 8 *
Reniboy 0:01eac446ef9f 9 * Example:
Reniboy 0:01eac446ef9f 10 * @code
Reniboy 0:01eac446ef9f 11 * // Beep with 1Khz for 0.5 seconds
Reniboy 0:01eac446ef9f 12 * #include "mbed.h"
Reniboy 0:01eac446ef9f 13 * #include "buzzer.h"
Reniboy 0:01eac446ef9f 14 *
Reniboy 0:01eac446ef9f 15 * Beep buzzer(PTC2);
Reniboy 0:01eac446ef9f 16 *
Reniboy 0:01eac446ef9f 17 * int main() {
Reniboy 0:01eac446ef9f 18 * ...
Reniboy 0:01eac446ef9f 19 * buzzer.beep(1000,0.5);
Reniboy 0:01eac446ef9f 20 * ...
Reniboy 0:01eac446ef9f 21 * }
Reniboy 0:01eac446ef9f 22 * @endcode
Reniboy 0:01eac446ef9f 23 */
Reniboy 0:01eac446ef9f 24
Reniboy 0:01eac446ef9f 25
Reniboy 0:01eac446ef9f 26 namespace mbed {
Reniboy 0:01eac446ef9f 27
Reniboy 0:01eac446ef9f 28 /* Class: Beep
Reniboy 0:01eac446ef9f 29 * A class witch uses pwm to controle a beeper to generate sounds.
Reniboy 0:01eac446ef9f 30 */
Reniboy 0:01eac446ef9f 31 class Beep {
Reniboy 0:01eac446ef9f 32
Reniboy 0:01eac446ef9f 33 public:
Reniboy 0:01eac446ef9f 34
Reniboy 0:01eac446ef9f 35 /** Create a Beep object connected to the specified PwmOut pin
Reniboy 0:01eac446ef9f 36 *
Reniboy 0:01eac446ef9f 37 * @param pin PwmOut pin to connect to
Reniboy 0:01eac446ef9f 38 */
Reniboy 0:01eac446ef9f 39 Beep (PinName pin);
Reniboy 0:01eac446ef9f 40
Reniboy 0:01eac446ef9f 41 /** Beep with given frequency and duration.
Reniboy 0:01eac446ef9f 42 *
Reniboy 0:01eac446ef9f 43 * @param frequency - the frequency of the tone in Hz
Reniboy 0:01eac446ef9f 44 * @param time - the duration of the tone in seconds
Reniboy 0:01eac446ef9f 45 */
Reniboy 0:01eac446ef9f 46 void beep (float frequency, float time);
Reniboy 0:01eac446ef9f 47
Reniboy 0:01eac446ef9f 48 /** stop the beep instantaneous
Reniboy 0:01eac446ef9f 49 * usually not used
Reniboy 0:01eac446ef9f 50 */
Reniboy 0:01eac446ef9f 51 void nobeep();
Reniboy 0:01eac446ef9f 52
Reniboy 0:01eac446ef9f 53 private :
Reniboy 0:01eac446ef9f 54 PwmOut _pwm;
Reniboy 0:01eac446ef9f 55 Timeout toff;
Reniboy 0:01eac446ef9f 56 };
Reniboy 0:01eac446ef9f 57
Reniboy 0:01eac446ef9f 58 }
Reniboy 0:01eac446ef9f 59 #endif
Reniboy 0:01eac446ef9f 60
Reniboy 0:01eac446ef9f 61