在 mp3player.c程序中
//播放一曲指定的歌曲
//返回值:0,正常播放完成
// 1,下一曲
// 2,上一曲
// 0XFF,出现错误了
u8 mp3_play_song(u8 *pname)
{
i=0;
do//主播放循环
{
if(VS_Send_MusicData(databuf+i)==0)//给VS10XX发送音频数?,
//0发送成功
{
i+=32;
}else
{
key=KEY_Scan(0);
switch(key)
{
case KEY_RIGHT:
rval=1; //下一曲
break;
case KEY_LEFT:
rval=2; //上一曲
break;
case KEY_UP: //音量增加
if(vsset.mvol<250)
{
vsset.mvol+=5;
VS_Set_Vol(vsset.mvol);
}else vsset.mvol=250;
mp3_vol_show((vsset.mvol-100)/5); //音量限制在:100~250,显示的时候,按照公式(vol-100)/5,显示,也就是0~30
break;
case KEY_DOWN: //音量减
if(vsset.mvol>100)
{
vsset.mvol-=5;
VS_Set_Vol(vsset.mvol);
}else vsset.mvol=100;
mp3_vol_show((vsset.mvol-100)/5); //音量限制在:100~250,显示的时候,按照公式(vol-100)/5,显示,也就是0~30
break;
}
mp3_msg_show(fmp3->fsize);//显示信息
}
}while(i<4096);//循环发送4096个字节
在do while语句中
什么情况不执行发送语句,执行下面的键入判断?在这个程序中按键的选择判断是查询?还是中断?
if(VS_Send_MusicData(databuf+i)==0)//给VS10XX发送音频数?,
{
i+=32;
}else
{
key=KEY_Scan(0);
switch(key)
{
case KEY_RIGHT:
rval=1; //下一曲
break;
case KEY_LEFT:
rval=2; //上一曲
|