Stap 3: De Code
#include < avr/pgmspace.h >
#include "util.h"
#include "wave.h"
Kaart van de AF_Wave;
Bestand f;
WAVEFILE Golf; slechts één!
#define redled 9
uint16_t samplerate;
VOID Setup {}
Serial.begin(9600); instellen van seriële bibliotheek 9600 bps
Serial.println ("Wave test!");
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (redled, OUTPUT);
Als (! card.init_card()) {}
putstring_nl ("Card init. mislukt!"); terugkeer;
}
Als (! card.open_partition()) {}
putstring_nl ("geen partitie!"); terugkeer;
}
Als (! card.open_filesys()) {}
putstring_nl niet kon ("openen filesys"); terugkeer;
}
Als (! card.open_rootdir()) {}
putstring_nl kon niet ("open dir"); terugkeer;
}
putstring_nl ("bestanden gevonden:");
ls();
}
ongeldig ls() {}
char naam [13];
int ret;
Card.reset_dir();
putstring_nl ("bestanden gevonden:");
terwijl (1) {}
RET = card.get_next_name_in_dir(name);
Als (! ret) {}
Card.reset_dir();
terugkeer;
}
Serial.println(name);
}
}
uint8_t tracknum = 0;
void loop {}
uint8_t i, r;
char c, naam [15];
Card.reset_dir();
Blader door de bestanden in de directory
voor (ik = 0; ik < tracknum + 1; i ++) {}
r = card.get_next_name_in_dir(name);
Als (! r) {}
rende tracks! opnieuw beginnen
tracknum = 0;
terugkeer;
}
}
putstring ("\n\rPlaying"); Serial.Print(name);
resetten van de directory, zodat we het bestand kunt vinden
Card.reset_dir();
playcomplete(name);
tracknum ++;
}
ongeldig playcomplete(char *name) {}
uint16_t potval;
uint32_t newsamplerate;
playfile(name);
samplerate = wave.dwSamplesPerSec;
terwijl (wave.isplaying) {}
kan je hier spullen!
delay(500);
}
Card.close_file(f);
}
ongeldig playfile(char *name) {}
f = card.open_file(name);
Als (! f) {}
putstring_nl kon niet ("open bestand"); terugkeer;
}
Als (! wave.create(f)) {}
putstring_nl ("niet een geldig WAV"); terugkeer;
}
OK tijd om te spelen!
Wave.Play();
}