parent
90cecc8b70
commit
312bc018a0
@ -0,0 +1,120 @@ |
||||
|
||||
//#include "tower.h"
|
||||
#include <Audio.h> |
||||
#include <Wire.h> |
||||
#include <SPI.h> |
||||
#include <SD.h> |
||||
#include <SerialFlash.h> |
||||
#include "reSID.h" |
||||
|
||||
|
||||
#define DMPDIR "/dmp" |
||||
|
||||
//#define DMP "/dmp/GHOSTB~1.DMP"
|
||||
//#define DMP "/dmp/LAX_UP.DMP"
|
||||
#define DMP "/dmp/MR_MAR~1.DMP" |
||||
|
||||
|
||||
// GUItool: begin automatically generated code
|
||||
AudioPlaySID playSID; //xy=189,110
|
||||
AudioOutputI2S i2s1; //xy=366,111
|
||||
AudioConnection patchCord1(playSID, 0, i2s1, 0); |
||||
AudioConnection patchCord2(playSID, 0, i2s1, 1); |
||||
AudioControlSGTL5000 sgtl5000_1; //xy=354,176
|
||||
// GUItool: end automatically generated code
|
||||
|
||||
|
||||
const int SDchipSelect = 10; |
||||
File directory; |
||||
File myfile; |
||||
|
||||
char buffer[26]; |
||||
char oldbuffer[26]; |
||||
|
||||
|
||||
void printDirectory(File dir, int numTabs) { |
||||
while(true) { |
||||
|
||||
File entry = dir.openNextFile(); |
||||
if (! entry) { |
||||
// no more files
|
||||
//Serial.println("**nomorefiles**");
|
||||
break; |
||||
} |
||||
for (uint8_t i=0; i<numTabs; i++) { |
||||
Serial.print('\t'); |
||||
} |
||||
Serial.print(entry.name()); |
||||
if (entry.isDirectory()) { |
||||
Serial.println("/"); |
||||
printDirectory(entry, numTabs+1); |
||||
} else { |
||||
// files have sizes, directories do not
|
||||
Serial.print("\t\t"); |
||||
Serial.println(entry.size(), DEC); |
||||
} |
||||
entry.close(); |
||||
} |
||||
} |
||||
|
||||
|
||||
void setup() { |
||||
|
||||
#if USETOWER |
||||
initTower(); |
||||
#endif |
||||
|
||||
AudioMemory(10); |
||||
|
||||
SPI.setSCK(14);
|
||||
SPI.setMOSI(7); |
||||
SPI.setMISO(12); |
||||
SPI.begin(); |
||||
|
||||
sgtl5000_1.enable(); |
||||
sgtl5000_1.volume(0.9); |
||||
sgtl5000_1.enhanceBassEnable(); |
||||
sgtl5000_1.enhanceBass(0.5, 2.5); |
||||
|
||||
memset(buffer,0,sizeof(buffer)); |
||||
memset(oldbuffer,0,sizeof(oldbuffer)); |
||||
|
||||
int ml = millis(); |
||||
while (!Serial && (millis()-ml < 1000)) ; // wait for Arduino Serial Monitor
|
||||
|
||||
Serial.print("Initializing SD card..."); |
||||
|
||||
if (!SD.begin(SDchipSelect)) { |
||||
Serial.println("initialization failed!"); |
||||
return; |
||||
} |
||||
Serial.println("initialization done."); |
||||
//directory = SD.open(DMPDIR);
|
||||
|
||||
//printDirectory(directory, 1);
|
||||
|
||||
myfile = SD.open(DMP, FILE_READ); |
||||
|
||||
} |
||||
|
||||
|
||||
void loop() { |
||||
static int m = millis(); |
||||
if (millis()-m < 20) return; |
||||
m = millis(); |
||||
|
||||
if (!myfile.available()) return;
|
||||
for(int i=0;i<25;i++) { |
||||
if(buffer[i] != oldbuffer[i]) {
|
||||
playSID.setreg(i, buffer[i]); |
||||
oldbuffer[i] = buffer[i];
|
||||
}
|
||||
|
||||
} |
||||
|
||||
myfile.read(buffer, 25); |
||||
|
||||
} |
||||
|
||||
|
||||
|
Loading…
Reference in new issue