#ifndef __BUZZER_H
#define __BUZZER_H
#include <stdint.h>

#define Octave 5 //设定八度
#define quiet_100 100*2 //静音200ms
#define quiet_200 200*2 //静音200ms
#define quiet_400 400*2//静音400ms
#define quiet_600 600*2//静音600ms

typedef struct {
    uint32_t octave ;      // 八度
    uint8_t note; // 音符
    uint32_t play_time
} ToneNote;

// 定义一个结构体来存储音调(八度)和音符
typedef enum {
    Start = 1, 
    Connect,
    Enter,
    Quit
} MusicIndex;

// 定义一个结构体来存储音符数字和频率
typedef struct {
    uint8_t note;      // 音符,C=0, D=1, E=2, F=3, G=4, A=5, B=6
    uint32_t frequency; // 对应的频率,以Hz为单位
} NoteFrequency;

extern const ToneNote MelodyStart[3];
extern const ToneNote MelodyConnect[3];
extern const ToneNote MelodyEnter[2];
extern const ToneNote MelodyQuit[2];

extern volatile float Ud;

extern void playMusic(const ToneNote *Melody,uint32_t size);
extern void playMusic_Ud(const ToneNote *Melody,uint32_t size);

#endif