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