Hi
I have teensy 3.5 and I'm trying to get this sample to work on my board.
Looks like for some reason, if play method is called teensy somehow hangs. I can't print anything to serial and so on.
I'm trying to play it on internal DAC from built-in sd card reader.
I tried multiple computers, sd cards and teensy boards so something must be very wrong somewhere.
I got this to work back in december 2018, and when I'm using computer which was used back then (so with older version of teensy and arduino), it still works.
But if I try the same code somewhere else, it does not work
Can anyone help with that/try if this is working for them?
I might be missing something obvious here, but I tried many things before posting here.
I'm using arduino 1.8.9
Here is the code:
I have teensy 3.5 and I'm trying to get this sample to work on my board.
Looks like for some reason, if play method is called teensy somehow hangs. I can't print anything to serial and so on.
I'm trying to play it on internal DAC from built-in sd card reader.
I tried multiple computers, sd cards and teensy boards so something must be very wrong somewhere.
I got this to work back in december 2018, and when I'm using computer which was used back then (so with older version of teensy and arduino), it still works.
But if I try the same code somewhere else, it does not work
Can anyone help with that/try if this is working for them?
I might be missing something obvious here, but I tried many things before posting here.
I'm using arduino 1.8.9
Here is the code:
Code:
// Simple WAV file player example
//
// Three types of output may be used, by configuring the code below.
//
// 1: Digital I2S - Normally used with the audio shield:
// http://www.pjrc.com/store/teensy3_audio.html
//
// 2: Digital S/PDIF - Connect pin 22 to a S/PDIF transmitter
// https://www.oshpark.com/shared_projects/KcDBKHta
//
// 3: Analog DAC - Connect the DAC pin to an amplified speaker
// http://www.pjrc.com/teensy/gui/?info=AudioOutputAnalog
//
// To configure the output type, first uncomment one of the three
// output objects. If not using the audio shield, comment out
// the sgtl5000_1 lines in setup(), so it does not wait forever
// trying to configure the SGTL5000 codec chip.
//
// The SD card may connect to different pins, depending on the
// hardware you are using. Uncomment or configure the SD card
// pins to match your hardware.
//
// Data files to put on your SD card can be downloaded here:
// http://www.pjrc.com/teensy/td_libs_AudioDataFiles.html
//
// This example code is in the public domain.
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
AudioPlaySdWav playWav1;
// Use one of these 3 output types: Digital I2S, Digital S/PDIF, or Analog DAC
//AudioOutputI2S audioOutput;
//AudioOutputSPDIF audioOutput;
AudioOutputAnalog audioOutput;
AudioConnection patchCord1(playWav1, 0, audioOutput, 0);
AudioConnection patchCord2(playWav1, 1, audioOutput, 1);
AudioControlSGTL5000 sgtl5000_1;
// Use these with the Teensy Audio Shield
//#define SDCARD_CS_PIN 10
//#define SDCARD_MOSI_PIN 7
//#define SDCARD_SCK_PIN 14
// Use these with the Teensy 3.5 & 3.6 SD card
#define SDCARD_CS_PIN BUILTIN_SDCARD
#define SDCARD_MOSI_PIN 11 // not actually used
#define SDCARD_SCK_PIN 13 // not actually used
// Use these for the SD+Wiz820 or other adaptors
//#define SDCARD_CS_PIN 4
//#define SDCARD_MOSI_PIN 11
//#define SDCARD_SCK_PIN 13
void setup() {
Serial.begin(9600);
// Audio connections require memory to work. For more
// detailed information, see the MemoryAndCpuUsage example
AudioMemory(8);
SPI.setMOSI(SDCARD_MOSI_PIN);
SPI.setSCK(SDCARD_SCK_PIN);
Serial.println("Hello1234");
if (!(SD.begin(SDCARD_CS_PIN))) {
// stop here, but print a message repetitively
while (1) {
Serial.println("Unable to access the SD card");
delay(500);
}
}
}
void playFile(const char *filename)
{
Serial.print("Playing file: ");
Serial.println(filename);
// Start playing the file. This sketch continues to
// run while the file plays.
playWav1.play(filename);
// A brief delay for the library read WAV info
delay(5);
// Simply wait for the file to finish playing.
while (playWav1.isPlaying()) {
}
}
void loop() {
Serial.println("test");
playFile("ACDC.WAV"); // filenames are always uppercase 8.3 format
delay(500);
}