eecs-bsp-test-code-2/inc/music.h

104 lines
6.6 KiB
C
Raw Permalink Normal View History

2022-08-22 14:51:00 +08:00
/********************************** music V2.0 说明 ************************************************************************
Music模块在Beep和Displayer模块基础上再次封装STC-B学习板Beep模块displayer模块music模块共提供1个music驱动函数4
1MusicPlayerInit()music模块
2char PlayTone(unsigned char tone, unsigned char beatsPM ,unsigned char scale, unsigned char beats)
tone0xFA0xFB0xFC0xFD0xFE0xFF0xF9ABCDEFG调
beatsPM10~255/
scale1
0x00
418 28 38
31-7
0x133mi
beats(),1/16
160x101320x20280x08......
Beep.h中定义BeepActNameenum BeepActName {enumBeepFree=0,enumBeepBusy,enumSetBeepOK,enumSetBeepFail};
3SetMusic(unsigned char beatsPM, unsigned char tone, unsigned char *pt, unsigned int datasize, unsigned char display)
beatsPM10~255/enumModeInvalid将不改变原beatsPM
tone 0xFA0xFB0xFC0xFD0xFE0xFF0xF9ABCDEFG调enumModeInvalid或其它值将不改变原tone
*pt *pt datasize = enumModeInvalid *pt datasize
datasize *pt datasize = enumModeInvalid *pt datasize
displaySeg7和Led是否用来显示播放音乐信息
enumMscNull
enumMscDrvSeg7 7Seg7
enumMscDrvLed Led指示灯 enumMscDrvSeg7andLed Seg7 Led
enumModeInvalid或其它值将不改变原display
1
11......
0x11 0x17 doremifasolasi
0x21 0x27 doremifasolasi
0x31 0x37 doremifasolasi
0x01-0xFF1/16441/16
2 0x20
0x08
10x18
26:
enumMscNull
enumMscDrvSeg7 7Seg7
enumMscDrvLed Led指示灯
enumMscDrvSeg7andLed Seg7 Led
enumMscSetBeatsPM 1
enumMscSetTone 1
0xFA 0xFB 0xFC 0xFD 0xFE 0xFF 0xF9
A调 B调
enumMscRepeatBegin
enumMscRepeatEnd
4SetPlayerMode(unsigned char play_ctrl)
play_ctrlenumModePlay
enumModePause
enumModeStop /
5char GetPlayerMode(void)
play_ctrl值
enumModePlay
enumModePause
enumModeStop /
18008400450 202135202195
*/
#ifndef _music_H_
#define _music_H_
extern void MusicPlayerInit();
extern char PlayTone(unsigned char tone, unsigned char beatsPM, unsigned char scale, unsigned char beats);
// tone 音调。F9,FA,FB,FC,FD,FE,FF分别对应G\A\B\C\D\E\F调,其它值无效
// beatsPM节凑单位每分钟节拍数
// scale: 音高。0x00——休止符高4位1——低8度音 2——中8度音 3——高8度音低3位1-7简谱音。其它无效
// beats: 音长(节拍数),单位1/16拍。160x10对应1拍320x20对应2拍80x08对应半拍......
extern void SetMusic(unsigned char beatsPM, unsigned char tone, unsigned char *pt, unsigned int datasize, unsigned char display);
//可设置或改变:全部、或部分播放参数(节拍率、音调、显示方式、音乐原数据)
//其中节拍率、音调、显示方式 也可以在音乐编码中设置
extern void SetPlayerMode(unsigned char play_ctrl);
//操作播放enumModePlay 或 enumModePause 或 enumModeStop分别设置音乐”播放“、”暂停“、”停止/结束“,所有操作在当前”音“播放完成后生效;
extern char GetPlayerMode(void); //获取当前播放状态
enum PlayerMode
{
enumModeInvalid = 0, //播放模式非法
enumModePlay, //播放
enumModePause, //暂停(可恢复续放)
enumModeStop
}; //停止(结束)
enum MusicKeyword
{
enumMscNull = 0xF0, //播放音乐时不用7段数码管、LED指示灯显示音乐播放相关信息
enumMscDrvSeg7, //播放音乐时, 用7段数码管
enumMscDrvLed, //播放音乐时, 用 LED指示灯
enumMscDrvSeg7andLed, //播放音乐时, 用7段数码管、LED指示灯
enumMscSetBeatsPM, //音乐编码中关键字: 设置 音乐节拍
enumMscSetTone, //音乐编码中关键字: 设置 音调
enumMscRepeatBegin, //音乐编码中关键字: 设置 重复开始
enumMscRepeatEnd
}; //音乐编码中关键字: 设置 重复结束
#endif