Junwei Zang / Mbed 2 deprecated Embedded_Systems_Project

Dependencies:   mbed

Committer:
el14jz
Date:
Thu May 07 14:46:11 2015 +0000
Revision:
1:ff57945c704c
Parent:
0:411f355688a5
Embedded Systems Project

Who changed what in which revision?

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