Party-starter (7 / 8 steg)
Steg 7: Ladda upp koden
#include < avr/pgmspace.h >
#include "util.h"
#include "wave.h"
AF_Wave kort;
Fil f;
Wavefile våg; bara en!
uint16_t samplerate;
void setup() {
Serial.BEGIN(9600); Ställ in följetong bibliotek på 9600 bps
Serial.println ("Wave test!");
pinMode (2, utgång);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (9, OUTPUT);
om (! card.init_card()) {
putstring_nl ("kort init. misslyckades!"); hemkomst.
}
om (! card.open_partition()) {
putstring_nl ("ingen partition!"); hemkomst.
}
om (! card.open_filesys()) {
putstring_nl ("kunde inte öppna filesys"); hemkomst.
}
om (! card.open_rootdir()) {
putstring_nl ("kunde inte öppna dir"); hemkomst.
}
putstring_nl ("filer som hittas:");
LS();
}
void ls() {
char namn [13].
int ret;
Card.reset_dir();
putstring_nl ("filer som hittas:");
samtidigt (1) {
ret = card.get_next_name_in_dir(name);
om (! ret) {
Card.reset_dir();
hemkomst.
}
Serial.println(Name);
}
}
uint8_t tracknum = 0;
void loop() {
uint8_t i, r;
char c, namn [15].
Card.reset_dir();
Bläddra igenom filerna i katalogen
för (jag = 0; jag < tracknum + 1; i ++) {
r = card.get_next_name_in_dir(name);
om (! r) {
sprang ut spår! börja om
tracknum = 0;
hemkomst.
}
}
putstring ("\n\rPlaying"); Serial.Print(Name);
återställa katalogen så att vi kan hitta filen
Card.reset_dir();
playcomplete(Name);
tracknum ++;
}
void playcomplete(char *name) {
uint16_t potval;
uint32_t newsamplerate;
playfile(Name);
samplerate = wave.dwSamplesPerSec;
samtidigt (wave.isplaying) {
digitalWrite (9, hög).
Delay(1);
digitalWrite (9, låg).
Delay(1);
Du kan göra sånt här!
Delay(50);
}
Card.close_file(f);
}
void playfile(char *name) {
f = card.open_file(name);
om (! f) {
putstring_nl kunde inte ("öppna filen"); hemkomst.
}
om (! wave.create(f)) {
putstring_nl ("inte en giltig WAV"); hemkomst.
}
OK dags att spela!
Wave.Play();
}