collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Audio.h exemplo com erro no código  (Lida 3507 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline megamartinelle

  • Mini Robot
  • *
  • Mensagens: 101
Audio.h exemplo com erro no código
« em: 11 de Março de 2016, 20:28 »
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!

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Audio.h exemplo com erro no código
« Responder #1 em: 11 de Março de 2016, 20:33 »
Porque é que está tudo rasurado e porque é que não usas as tags para código?
Até tem o simbolo # para marcar como código..
E que shield/chip estás a usar?
É que não é do atmega do Arduino que fazes stereo a 44.1Khz.
Avr fanboy

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Audio.h exemplo com erro no código
« Responder #2 em: 11 de Março de 2016, 20:51 »
É como o senso diz, tens de usar a tag code. É aquele hashtag (cardinal, #) que está por cima dos smiles.


Mas decifrando o teu texto o erro está aí e bem claro:
Código: [Seleccione]
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].

E outra vez o senso acertou na mouche: essa biblioteca não é para arduinos com ATMega(avr), mas com SAM(Cortex-M3) como o Arduino Due: https://www.arduino.cc/en/Main/ArduinoBoardDue
« Última modificação: 11 de Março de 2016, 20:52 por jm_araujo »

Offline megamartinelle

  • Mini Robot
  • *
  • Mensagens: 101
Re: Audio.h exemplo com erro no código
« Responder #3 em: 11 de Março de 2016, 20:57 »
Pois é, não tinha reparado que tinha ficado rasurado. Vou fazer o que disses