TVZ2021 / Mbed 2 deprecated Semafor_sa_brojacem-Nikolic

Dependencies:   mbed

Committer:
mnikolic1
Date:
Tue May 03 17:54:52 2022 +0000
Revision:
0:d8937c44a46e
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mnikolic1 0:d8937c44a46e 1 #include "buzzer.h"
mnikolic1 0:d8937c44a46e 2 #include "mbed.h"
mnikolic1 0:d8937c44a46e 3
mnikolic1 0:d8937c44a46e 4 /** class to make sound with a buzzer, based on a PwmOut
mnikolic1 0:d8937c44a46e 5 * The class use a timeout to switch off the sound - it is not blocking while making noise
mnikolic1 0:d8937c44a46e 6 *
mnikolic1 0:d8937c44a46e 7 * Example:
mnikolic1 0:d8937c44a46e 8 * @code
mnikolic1 0:d8937c44a46e 9 * // Beep with 1Khz for 0.5 seconds
mnikolic1 0:d8937c44a46e 10 * #include "mbed.h"
mnikolic1 0:d8937c44a46e 11 * #include "beep.h"
mnikolic1 0:d8937c44a46e 12 *
mnikolic1 0:d8937c44a46e 13 * Beep buzzer(PTC2);
mnikolic1 0:d8937c44a46e 14 *
mnikolic1 0:d8937c44a46e 15 * int main() {
mnikolic1 0:d8937c44a46e 16 * ...
mnikolic1 0:d8937c44a46e 17 * buzzer.beep(1000,0.5);
mnikolic1 0:d8937c44a46e 18 * ...
mnikolic1 0:d8937c44a46e 19 * }
mnikolic1 0:d8937c44a46e 20 * @endcode
mnikolic1 0:d8937c44a46e 21 */
mnikolic1 0:d8937c44a46e 22
mnikolic1 0:d8937c44a46e 23 using namespace mbed;
mnikolic1 0:d8937c44a46e 24 // constructor
mnikolic1 0:d8937c44a46e 25 /** Create a Beep object connected to the specified PwmOut pin
mnikolic1 0:d8937c44a46e 26 *
mnikolic1 0:d8937c44a46e 27 * @param pin PwmOut pin to connect to
mnikolic1 0:d8937c44a46e 28 */
mnikolic1 0:d8937c44a46e 29
mnikolic1 0:d8937c44a46e 30 Beep::Beep(PinName pin) : _pwm(pin) {
mnikolic1 0:d8937c44a46e 31 _pwm.write(0.0); // after creating it have to be off
mnikolic1 0:d8937c44a46e 32 }
mnikolic1 0:d8937c44a46e 33
mnikolic1 0:d8937c44a46e 34 /** stop the beep instantaneous
mnikolic1 0:d8937c44a46e 35 * usually not used
mnikolic1 0:d8937c44a46e 36 */
mnikolic1 0:d8937c44a46e 37 void Beep::nobeep() {
mnikolic1 0:d8937c44a46e 38 _pwm.write(0.0);
mnikolic1 0:d8937c44a46e 39 }
mnikolic1 0:d8937c44a46e 40
mnikolic1 0:d8937c44a46e 41 /** Beep with given frequency and duration.
mnikolic1 0:d8937c44a46e 42 *
mnikolic1 0:d8937c44a46e 43 * @param frequency - the frequency of the tone in Hz
mnikolic1 0:d8937c44a46e 44 * @param time - the duration of the tone in seconds
mnikolic1 0:d8937c44a46e 45 */
mnikolic1 0:d8937c44a46e 46
mnikolic1 0:d8937c44a46e 47 void Beep::beep(float freq, float time) {
mnikolic1 0:d8937c44a46e 48
mnikolic1 0:d8937c44a46e 49 _pwm.period(1.0/freq);
mnikolic1 0:d8937c44a46e 50 _pwm.write(0.5); // 50% duty cycle - beep on
mnikolic1 0:d8937c44a46e 51 toff.attach(this,&Beep::nobeep, time); // time to off
mnikolic1 0:d8937c44a46e 52 }