咸菜鱼 2015-09-19 14:32 采纳率: 0%
浏览 4438
已结题

基于单片机用C语言的音乐播放器怎么实现暂停和播放

void song(unchar p)
{
unint temp;
unchar jp;//jp是简谱
// unint i=0,j;
temp=0;
while(1)
{
temp=
(p+i);
if(temp==0xff)
{
EA=0;
break;
}

jp=temp/16; //取数的高4位
P1=yinyue[jp];
if(jp!=0)
{
timeh=cuzhi[jp*2];
timel=cuzhi[jp*2+1];
}
else
{
TR1=0;
fm=1;//关蜂鸣器
}
delay(temp%16); //取数的低4位
TR1=0; //唱完一个音停10MS
fm=1;
delay_ms(10);
TR1=1;
i++;
keyboard();

if(number==6)
{
number=0;
fm=1;
EA=0;
while(1)
{
keyboard();
if(number==6)
{ EA=1;
// i=j;
break;
}

         }
    }
}
fm=1;return;    

} //其中number是按键对应的传递数值来实现暂停,可是不知道为什么能实现暂停但是不能再播放

  • 写回答

2条回答

  • threenewbee 2015-09-19 14:39
    关注

    代码太乱,你也没说清楚哪个num表示暂停。
    关键是你暂停的时候记录下当前的p(播放位置)到全局变量,恢复的时候从这个地方开始播放。调试下你的程序。

    评论

报告相同问题?

悬赏问题

  • ¥15 Labview机器人问题
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr