Bzzer_HelloWorld Example for WIZwiki-W7500
Dependencies: mbed
main.cpp
- Committer:
- jcm931213
- Date:
- 2017-04-20
- Revision:
- 9:bb3df348b730
- Parent:
- 8:ebfa804378a5
File content as of revision 9:bb3df348b730:
/**
******************************************************************************
* @project Web Piano
* @author Justin Kim
* @version V1.0.0
* @date 03-JUL-2015
* @brief Main program body
*******************************************************************************
**/
/* Includes ------------------------------------------------------------------*/
#include "mbed.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define Do3 131 //C octave3
#define Do3s 139 //C#
#define Re3 147 //D
#define Re3s 156//D#
#define Mi3 165 //E
#define Fa3 175 //F
#define Fa3s 185 //F#
#define So3 196 //G
#define So3s 208 //G#
#define La3 220 //A
#define La3s 233 //A#
#define Ti3 247 //B
#define Do4 262 //C octave4
#define Do4s 277 //C#
#define Re4 294 //D
#define Re4s 311//D#
#define Mi4 330 //E
#define Fa4 349 //F
#define Fa4s 370 //F#
#define So4 392 //G
#define So4s 415 //G#
#define La4 440 //A
#define La4s 466 //A#
#define Ti4 494 //B
#define Do5 523 //C octave5
#define Do5s 554 //C#
#define Re5 587 //D
#define Re5s 622//D#
#define Mi5 659 //E
#define Fa5 699 //F
#define Fa5s 740 //F#
#define So5 784 //G
#define So5s 831 //G#
#define La5 880 //A
#define La5s 932 //A#
#define Ti5 988 //B
/* Private variables ---------------------------------------------------------*/
PwmOut Buzzer(D3);
float C_3 = 1000000/Do3,
Cs_3 = 1000000/Do3s,
D_3 = 1000000/Re3,
Ds_3 = 1000000/Re3s,
E_3 = 1000000/Mi3,
F_3 = 1000000/Fa3,
Fs_3 = 1000000/Fa3s,
G_3 = 1000000/So3,
Gs_3 = 1000000/So3s,
A_3 = 1000000/La3,
As_3 = 1000000/La3s,
B_3 = 1000000/Ti3,
C_4 = 1000000/Do4,
Cs_4 = 1000000/Do4s,
D_4 = 1000000/Re4,
Ds_4 = 1000000/Re4s,
E_4 = 1000000/Mi4,
F_4 = 1000000/Fa4,
Fs_4 = 1000000/Fa4s,
G_4 = 1000000/So4,
Gs_4 = 1000000/So4s,
A_4 = 1000000/La4,
As_4 = 1000000/La4s,
B_4 = 1000000/Ti4,
C_5 = 1000000/Do5,
Cs_5 = 1000000/Do5s,
D_5 = 1000000/Re5,
Ds_5 = 1000000/Re5s,
E_5 = 1000000/Mi5,
F_5 = 1000000/Fa5,
Fs_5 = 1000000/Fa5s,
G_5 = 1000000/So5,
Gs_5 = 1000000/So5s,
A_5 = 1000000/La5,
As_5 = 1000000/La5s,
B_5 = 1000000/Ti5;
int tones_airplane[] = {E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, D_4, 0, E_4, G_4, G_4, 0,
E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, E_4, D_4, C_4, 0, 0};
int tones_school[] = {D_4, D_4, E_4, E_4, D_4, D_4, B_3, 0, D_4, D_4, B_3, B_3, A_3, 0,
D_4, D_4, E_4, E_4, D_4, D_4, B_3, 0, D_4, B_3, A_3, B_3, G_3, 0, 0, 0, 0};
int tones_num = 31;
/* Private function prototypes -----------------------------------------------*/
void Tune(PwmOut name, int period);
void Auto_tunes(PwmOut name, int period);
void Stop_tunes(PwmOut name);
int main(void)
{
int i;
for(i=0; i<tones_num; i++)
{
Auto_tunes(Buzzer, tones_airplane[i]); // User can change tones_airplane[i] -> tones_achool[i]
Stop_tunes(Buzzer);
}
}
/**
* @brief Tune Function
* @param name : Choose the PwmOut
period : this param is tune value. (C_3...B_5)
*/
void Tune(PwmOut name, int period)
{
name.period_us(period);
name.write(0.50f); // 50% duty cycle
wait(1); // 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)
*/
void Auto_tunes(PwmOut name, int period)
{
name.period_us(period);
name.write(0.50f); // 50% duty cycle
wait_ms(250); // 1/4 beat
}
/**
* @brief Stop tunes Function
* @param name : Choose the PwmOut
*/
void Stop_tunes(PwmOut name)
{
name.period_us(0);
}
IOP