/** @see https:developer.mbed.org/users/justinkim/code/PiezoBuzzer_HelloWorld_WIZwiki-W7500 */
Fork of PWM_Tone_Library by
Diff: pwm_tone.cpp
- Revision:
- 0:d06af372d384
diff -r 000000000000 -r d06af372d384 pwm_tone.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwm_tone.cpp Fri Jul 24 05:01:45 2015 +0000 @@ -0,0 +1,53 @@ +/* Includes ------------------------------------------------------------------*/ +#include "pwm_tone.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/** + * @brief Tune Function + * @param name : Choose the PwmOut + period : this param is tune value. (C_3...B_5) + beat : this param is beat value. (1..16) 1 means 1/16 beat + * @retval None + */ +void Tune(PwmOut name, int period, int beat) +{ + int delay; + + delay = beat*63; + name.period_us(period); + name.write(0.50f); // 50% duty cycle + wait_ms(delay); // 1 beat + name.period_us(0); // Sound off +} + +/** + * @brief Auto tunes Function + * @param name : Choose the PwmOut + period : this param is tune value. (C_3...B_5) + beat : this param is beat value. (1..16) 1 means 1/16 beat + * @retval None + */ +void Auto_tunes(PwmOut name, int period, int beat) +{ + int delay; + + delay = beat*63; + name.period_us(period); + name.write(0.50f); // 50% duty cycle + wait_ms(delay); +} + +/** + * @brief Stop tunes Function + * @param name : Choose the PwmOut + * @retval None + */ +void Stop_tunes(PwmOut name) +{ + name.period_us(0); +}