First commit. Non blocking Led and Buzzer library
Dependents: non_blocking_Led_Buzze_HelloWorld
Buzzer.h
- Committer:
- tsungta
- Date:
- 2016-11-21
- Revision:
- 0:c18c119011ec
File content as of revision 0:c18c119011ec:
/******************** (C) COPYRIGHT 2016 Delta Electronics, Inc. *************** * * File Name : Buzzer.h * Authors : Tsungta Wu - CPBG (tsungta.wu@deltaww.com) * Version : V.1.0.1 * Date : 2016/Nov/14 * *******************************************************************************/ /** class to make sound and play melody with a buzzer using PWM * The class use a timer to change tone - it is not blocking while playing melody * * Example: * @code * #include "mbed.h" * #include "Buzzer.h" * * Buzzer buzzer(p21); * *#define tone_num 5 *float tone[tone_num] = {262, 294, 330, 349, 392}; * int main() { * ... * buzzer.simpleBeep(1000,0.5); //beep frequency at 1KHz for 0.5 second * ... * buzzer.playMelody(tone, tone_num, 0.5); //play do re mi fa so change tone every 0.5 second * ... * } * @endcode */ #ifndef MBED_BUZZER_H #define MBED_BUZZER_H #include "mbed.h" namespace mbed { /* Class: Buzzer * A class witch uses PwmOut to play sounds. * The class use a timer to change tone - it is not blocking */ class Buzzer { public: /** Create a Buzzer object connected to the specified GPIO pin * * @param pin GPIO pin to connect to * @param debug GPIO uart tx pin used to print debug message (reserved) */ Buzzer (PinName pin); /** Beep with given frequency and duration. * * @param frequency - the frequency of the tone in Hz * @param time - the duration of the tone in seconds */ void simpleBeep (float frequency, float time); /** Play melody with given frequency and interval. * * @param tone_freq - the frequency of each tone in Hz * @param tone_num - the total number of the given tones * @param tone_time - the duration of each tone in seconds */ void playMelody (float* tone_freq, uint16_t tone_num,float tone_time); /** stop the Buzzer instantaneous * usually not used */ void stopBuzzer(); private : void nextTone(); PwmOut _pwm; Timeout tnext; PinName _debug; }; } #endif