Paso 3: El código
#include < avr/pgmspace.h >
#include "util.h"
#include "wave.h"
Tarjeta de AF_Wave;
Archivo f;
Wavefile onda; ¡ sólo uno!
#define rojo 9
samplerate uint16_t;
void setup() {}
Serial.Begin(9600); Biblioteca Serial a 9600 bps
Serial.println ("onda prueba!");
pinMode (2, salida);
pinMode (3, salida);
pinMode (4, salida);
pinMode (5, salida);
pinMode (rojo, salida);
Si (! {card.init_card())}
putstring_nl ("tarjeta init. no se pudo!"); retorno;
}
Si (! {card.open_partition())}
putstring_nl ("ninguna partición!"); retorno;
}
Si (! {card.open_filesys())}
putstring_nl ("no podía abrir filesys"); retorno;
}
Si (! {card.open_rootdir())}
putstring_nl ("no podía abrir dir"); retorno;
}
putstring_nl ("archivos encontrados:");
LS();
}
{} void ls()
nombre del Char [13];
int ret;
Card.reset_dir();
putstring_nl ("archivos encontrados:");
mientras que {} (1)
RET = card.get_next_name_in_dir(name);
Si (! ret) {}
Card.reset_dir();
retorno;
}
Serial.println(Name);
}
}
uint8_t tracknum = 0;
void loop() {}
uint8_t i, r;
nombre c, Char [15];
Card.reset_dir();
desplazarse por los archivos en el directorio
para (i = 0; i < tracknum + 1; i ++) {}
r = card.get_next_name_in_dir(name);
Si (! r) {}
acabaron las pistas! volver a empezar
tracknum = 0;
retorno;
}
}
putstring ("\n\rPlaying"); Serial.Print(Name);
restaurar el directorio por lo que podemos encontrar el archivo
Card.reset_dir();
playcomplete(Name);
tracknum ++;
}
void playcomplete(char *name) {}
potval de uint16_t;
newsamplerate de uint32_t;
playfile(Name);
sampleRate = wave.dwSamplesPerSec;
mientras (wave.isplaying) {}
Usted puede hacer cosas aquí!
Delay(500);
}
Card.close_file(f);
}
void playfile(char *name) {}
f = card.open_file(name);
Si (! f) {}
putstring_nl ("no puede abrir archivo"); retorno;
}
Si (! {wave.create(f))}
putstring_nl ("no un válido WAV"); retorno;
}
OK el tiempo para jugar!
Wave.Play();
}