我定义了一个unsigned char code SONG_LONG[]和unsigned char code SONG_TONE[] 写了两段音乐代码 uchar code SONG1_TONE[] = uchar code SONG1_LONG[] = {9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //世上只有妈妈好unsigned char code SONG2_TONE[]={63,71,85,71,53,63,71,63,85,71,63,71,85,107,126,71,85,93,93,85,71,71,63,85,93,107,71,85,93,107,126,107,142,0};unsigned char code SONG2_LONG[]={18,6,12,12,12,6,6,24,12,6,6,12,12,6,6,6,6,24,18,6,12,6,6,12,12,24,18,6,6,6,6,6,48,0};音乐播放程序是抄的void PlayMusic(){ unsigned char Key; uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG为拍子长度 for(j=0;j<SONG_LONG[i]*20;j++) { //播放子程序 BEEP=~BEEP;Key=GetKey(); if(Key!=0) { KeyProcess(Key); } //SONG_TONG决定了每个音符的频率 for(k=0;k<SONG_TONE[i]/3;k++); } DelayMS(10); //下一个音符的索引 i++; }}我想不同的模式选不同的歌 通过按键选择 case 0:Led_Demo(0x0001<<mb_Count) ;流水灯 SONG_TONE[]=SONG1_TONE[]; 编译出错case1:.....就是把代码赋给音乐程序的SONG_TONE[] 要怎么传参数,编译出错,怎么把play写成参数类型 实现不同模式播不同的音乐
我定义了一个unsigned char code SONG_LONG[]和unsigned char code SONG_TONE[] 写了两段音乐代码 uchar code SONG1_TONE[] = uchar code SONG1_LONG[] = {9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //世上只有妈妈好unsigned char code SONG2_TONE[]={63,71,85,71,53,63,71,63,85,71,63,71,85,107,126,71,85,93,93,85,71,71,63,85,93,107,71,85,93,107,126,107,142,0};unsigned char code SONG2_LONG[]={18,6,12,12,12,6,6,24,12,6,6,12,12,6,6,6,6,24,18,6,12,6,6,12,12,24,18,6,6,6,6,6,48,0};音乐播放程序是抄的void PlayMusic(){ unsigned char Key; uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG为拍子长度 for(j=0;j<SONG_LONG[i]*20;j++) { //播放子程序 BEEP=~BEEP;Key=GetKey(); if(Key!=0) { KeyProcess(Key); } //SONG_TONG决定了每个音符的频率 for(k=0;k<SONG_TONE[i]/3;k++); } DelayMS(10); //下一个音符的索引 i++; }}我想不同的模式选不同的歌 通过按键选择 case 0:Led_Demo(0x0001<<mb_Count) ;流水灯 SONG_TONE[]=SONG1_TONE[]; 编译出错case1:.....就是把代码赋给音乐程序的SONG_TONE[] 要怎么传参数,编译出错,怎么把play写成参数类型 实现不同模式播不同的音乐
把 SONG_TONE和SONG_LONG的数组长度定义为SONG1_TONE和SONG1_LONG的数组长度,比如unsigned char code SONG_TONE[sizeof(SONG1_TONE)]={0};和unsigned char code SONG_LONG[sizeof(SONG1_LONG)]={0};这样使两个数组的长度相同。如果还是不行,就做一个循环,把你的数组SONG_LONG1[]的每一个元素一个一个赋值给SONG_LONG[]。