渲染♀离别^ 发表于 2013-10-8 22:41:59

sd卡放音乐 用库文件 ,不用电脑控制求建议,帮忙想想怎样随机播放

这个是代码,谁能一起想想自动循环的语法,(我是用if来选择,也可以用switch,但是如果有几百首个if码子都码死,求简略的方法。。。比方说吧中间的数字用变量来代替,但是我不会==)(原谅我就玩了4天的菜鸟。。)还有很多教程都有具体的电路图,我就不介绍了==。
二号引脚是下一首歌,我还没想到方法让它一首歌放完自动下一首,只能这样==二号引脚是下一首歌,我还没想到方法让它一首歌放完自动下一首,只能这样==
谢谢各位大神帮忙==
#include <SimpleSDAudio.h>

void DirCallback(char *buf) {
Serial.println(buf);
}

#define BIGBUFSIZE (2*512)
uint8_t bigbuf;

// helper function to determine free ram at runtime
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}

void setup()
{
pinMode(2, OUTPUT);
Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
}

Serial.print(F("Free Ram: "));
Serial.println(freeRam());

// Setting the buffer manually for more flexibility
SdPlay.setWorkBuffer(bigbuf, BIGBUFSIZE);

Serial.print(F("\nInitializing SimpleSDAudio V" SSDA_VERSIONSTRING " ..."));

// If your SD card CS-Pin is not at Pin 4, enable and adapt the following line:
//SdPlay.setSDCSPin(10);

// Select between SSDA_MODE_FULLRATE or SSDA_MODE_HALFRATE (62.5kHz or 31.25kHz)
// and the output modes SSDA_MODE_MONO_BRIDGE, SSDA_MODE_MONO or SSDA_MODE_STEREO
if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER)) {
    Serial.println(F("initialization failed. Things to check:"));
    Serial.println(F("* is a card is inserted?"));
    Serial.println(F("* Is your wiring correct?"));
    Serial.println(F("* maybe you need to change the chipSelect pin to match your shield or module?"));
    Serial.print(F("Error code: "));
    Serial.println(SdPlay.getLastError());
    while(1);
} else {
    Serial.println(F("Wiring is correct and a card is present."));
}


}
int a=0;
char * AudioFileName="(7)~1.AFM";
void loop(void) {
uint8_t count=0, c, flag;

a=a+1;
   if (a==1)
   {
AudioFileName="(6)~1.AFM";
};
   if (a==2)
   {
AudioFileName="(7)~1.AFM";
};
if (a==3)
   {
AudioFileName="(8)~1.AFM";
};
if (a==4)
   {
AudioFileName="(9)~1.AFM";
};
if (a==5)
   {
AudioFileName="(10)~1.AFM";
};

Serial.println(F("Files on card:"));
SdPlay.dir(&DirCallback);

Serial.print(F("Looking for file... "));
SdPlay.setFile(AudioFileName);
Serial.print(AudioFileName);
    flag = 1;
int i=1;
   
while(flag) {
    SdPlay.worker();
    if (i==1){
               SdPlay.play();
         Serial.println(F("Play."));
         i=2;      
    }
int a =digitalRead(2);
if (a==HIGH)
{
break;
}

};
}
页: [1]
查看完整版本: sd卡放音乐 用库文件 ,不用电脑控制求建议,帮忙想想怎样随机播放