Simple PWM / beep generation library. Supports timed-duration beeps or infinite length tone generation.

Dependents:   PseudoTheremin NSDL_HelloWorld_WiFi UbloxModemNanoServiceClient IOT-NSDL_HelloWorld ... more

Committer:
shimniok
Date:
Wed Jul 31 23:05:44 2013 +0000
Revision:
0:3eb39e374fc3
Working version with dual sharp rangers and A2D I2C adapters

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimniok 0:3eb39e374fc3 1 #ifndef MBED_BEEP_H
shimniok 0:3eb39e374fc3 2 #define MBED_BEEP_H
shimniok 0:3eb39e374fc3 3
shimniok 0:3eb39e374fc3 4 #include "mbed.h"
shimniok 0:3eb39e374fc3 5
shimniok 0:3eb39e374fc3 6 /** Generates a tone with a buzzer, based on a PwmOut
shimniok 0:3eb39e374fc3 7 * The class use a timeout to switch off the sound - it is not blocking while making noise
shimniok 0:3eb39e374fc3 8 *
shimniok 0:3eb39e374fc3 9 * Example:
shimniok 0:3eb39e374fc3 10 * @code
shimniok 0:3eb39e374fc3 11 * // Beep at 2kHz for 0.5 seconds
shimniok 0:3eb39e374fc3 12 * #include "mbed.h"
shimniok 0:3eb39e374fc3 13 * #include "Beep.h"
shimniok 0:3eb39e374fc3 14 *
shimniok 0:3eb39e374fc3 15 * Beep buzzer(p21);
shimniok 0:3eb39e374fc3 16 *
shimniok 0:3eb39e374fc3 17 * int main() {
shimniok 0:3eb39e374fc3 18 * ...
shimniok 0:3eb39e374fc3 19 * buzzer.beep(2000,0.5);
shimniok 0:3eb39e374fc3 20 * ...
shimniok 0:3eb39e374fc3 21 * }
shimniok 0:3eb39e374fc3 22 * @endcode
shimniok 0:3eb39e374fc3 23 */
shimniok 0:3eb39e374fc3 24 class Beep {
shimniok 0:3eb39e374fc3 25
shimniok 0:3eb39e374fc3 26 public:
shimniok 0:3eb39e374fc3 27
shimniok 0:3eb39e374fc3 28 /** Create a Beep object connected to the specified PwmOut pin
shimniok 0:3eb39e374fc3 29 *
shimniok 0:3eb39e374fc3 30 * @param pin PwmOut pin to connect to
shimniok 0:3eb39e374fc3 31 */
shimniok 0:3eb39e374fc3 32 Beep(PinName pin);
shimniok 0:3eb39e374fc3 33
shimniok 0:3eb39e374fc3 34 /** Beep with given frequency and duration.
shimniok 0:3eb39e374fc3 35 *
shimniok 0:3eb39e374fc3 36 * @param frequency - the frequency of the tone in Hz
shimniok 0:3eb39e374fc3 37 * @param time - the duration of the tone in seconds
shimniok 0:3eb39e374fc3 38 */
shimniok 0:3eb39e374fc3 39 void beep(float frequency, float time=0);
shimniok 0:3eb39e374fc3 40
shimniok 0:3eb39e374fc3 41 /** stop the beep instantaneously. Not typically needed, but here just in case
shimniok 0:3eb39e374fc3 42 */
shimniok 0:3eb39e374fc3 43 void nobeep();
shimniok 0:3eb39e374fc3 44
shimniok 0:3eb39e374fc3 45 private :
shimniok 0:3eb39e374fc3 46 PwmOut _pwm;
shimniok 0:3eb39e374fc3 47 Timeout toff;
shimniok 0:3eb39e374fc3 48 };
shimniok 0:3eb39e374fc3 49 #endif