Olá pessoal, to fazendo um teste aqui com esse código:
#include <SD.h>
#include <SPI.h>
#include <Audio.h>
void setup() {
// debug output at 9600 baud
Serial.begin(9600);
// setup SD-card
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println(" failed!");
while(true);
}
Serial.println(" done.");
// hi-speed SPI transfers
// 44100kHz stereo => 88200 sample rate
// 100 mSec of prebuffering.
Audio.begin(88200, 100);
}
void loop() {
int count = 0;
// open wave file from sdcard
File myFile = SD.open("test.wav");
if (!myFile) {
// if the file didn't open, print an error and stop
Serial.println("error opening test.wav");
while (true);
}
const int S = 1000; // Number of samples to read in block
short buffer;
Serial.print("Playing");
// until the file is not finished
while (myFile.available()) {
// read from the file into buffer
myFile.read(buffer, sizeof(buffer));
// Prepare samples
int volume = 1000;
Audio.prepare(buffer, S, volume);
// Feed samples to audio
Audio.write(buffer, S);
// Every 100 block print a '.'
count++;
if (count == 100) {
Serial.print(".");
count = 0;
}
}
myFile.close();
Serial.println("End of file. Thank you for listening!");
while (true) ;
}
///////////E aparece esse erro quando vou compilar://////////////
Arduino: 1.6.7 (Windows 10), Placa:"Arduino/Genuino Uno"
AVISO: A categoria 'Education' na biblioteca EducationShield é invalida. Definindo para 'Uncategorized'
AVISO: a biblioteca Audio alega rodar em arquitetura(s) [sam] e pode ser incompatível com sua placa atual, que roda em arquitetura(s) [avr].
In file included from C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/Audio.h:16:0,
from C:\Users\BRUNOM~1\AppData\Local\Temp\arduino_aeda8030121f38bce14ed58c8df04f59\SimpleAudioPlayer.ino:3:
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:21:16: error: expected ')' before '*' token
DACClass(Dacc *_dac, uint32_t _dacId, IRQn_Type _isrId) :
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:35:2: error: 'Dacc' does not name a type
Dacc *dac;
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:37:2: error: 'IRQn_Type' does not name a type
IRQn_Type isrId;
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h: In member function 'void DACClass::enableInterrupts()':
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:31:44: error: 'isrId' was not declared in this scope
void enableInterrupts() { NVIC_EnableIRQ(isrId); };
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:31:49: error: 'NVIC_EnableIRQ' was not declared in this scope
void enableInterrupts() { NVIC_EnableIRQ(isrId); };
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h: In member function 'void DACClass::disableInterrupts()':
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:32:45: error: 'isrId' was not declared in this scope
void disableInterrupts() { NVIC_DisableIRQ(isrId); };
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/DAC.h:32:50: error: 'NVIC_DisableIRQ' was not declared in this scope
void disableInterrupts() { NVIC_DisableIRQ(isrId); };
^
C:\Users\BRUNOM~1\AppData\Local\Temp\arduino_aeda8030121f38bce14ed58c8df04f59\SimpleAudioPlayer.ino: In function 'void loop()':
SimpleAudioPlayer:45: error: invalid conversion from 'short int*' to 'int16_t* {aka int*}' [-fpermissive]
Audio.prepare(buffer, S, volume);
^
In file included from C:\Users\BRUNOM~1\AppData\Local\Temp\arduino_aeda8030121f38bce14ed58c8df04f59\SimpleAudioPlayer.ino:3:0:
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/Audio.h:21:7: error: initializing argument 1 of 'void AudioClass::prepare(int16_t*, int, int)' [-fpermissive]
void prepare(int16_t *buffer, int S, int volume);
^
SimpleAudioPlayer:47: error: call of overloaded 'write(short int [1000], const int&)' is ambiguous
Audio.write(buffer, S);
^
C:\Users\BRUNOM~1\AppData\Local\Temp\arduino_aeda8030121f38bce14ed58c8df04f59\SimpleAudioPlayer.ino:47:26: note: candidates are:
In file included from C:\Users\BRUNOM~1\AppData\Local\Temp\arduino_aeda8030121f38bce14ed58c8df04f59\SimpleAudioPlayer.ino:3:0:
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/Audio.h:27:17: note: virtual size_t AudioClass::write(const uint16_t*, size_t) <near match>
virtual size_t write(const uint16_t *data, size_t size) { return write(reinterpret_cast<const uint32_t*>(data), size/2) * 2; };
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/Audio.h:27:17: note: no known conversion for argument 1 from 'short int [1000]' to 'const uint16_t* {aka const unsigned int*}'
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/Audio.h:28:17: note: virtual size_t AudioClass::write(const int16_t*, size_t) <near match>
virtual size_t write(const int16_t *data, size_t size) { return write(reinterpret_cast<const uint32_t*>(data), size/2) * 2; };
^
C:\Users\Bruno Martinelle\Documents\Arduino\libraries\Audio\src/Audio.h:28:17: note: no known conversion for argument 1 from 'short int [1000]' to 'const int16_t* {aka const int*}'
exit status 1
invalid conversion from 'short int*' to 'int16_t* {aka int*}' [-fpermissive]
Este relatório deveria ter mais informações
"Mostrar saída verbosa durante a compilação"
habilitado em Arquivo > Preferências.
Alguém poderia me falar onde ta o problema? Se sim muito obrigado!