Still does not work.
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include "SystemFont5x7.h"
#include "Arial_black_16.h"
#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
//DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
DMD dmd(1, 1); // creates instance of DMD to refer to in sketch
//int peak_hold_time = 1; // how long before peak decays
//int peaksize; // how many individual peak bands we have (dep. binsperband)
int data[32];
//int arraytemp[16] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int i, j, k, r;
int band;
void ScanDMD()
{
dmd.scanDisplayBySPI();
}
byte serial_getch() {
while (Serial.available() == 0);
return Serial.read();
for( band = 0; band < 32; band++ );
}
// Define various ADC prescaler
const unsigned char PS_16 = (1 << ADPS2);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_64 = (1 << ADPS2) | (1 << ADPS1);
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
void setup()
{
// Setup the ADC
pinMode(A0, INPUT);
ADCSRA &= ~PS_128; // remove bits set by Arduino library
// Set prescaler
// ADCSRA |= PS_64; // 64 prescaler (250 kHz assuming a 16MHz clock)
// ADCSRA |= PS_32; // 32 prescaler (500 kHz assuming a 16MHz clock)
ADCSRA |= PS_16; // 16 prescaler (1 MHz assuming a 16MHz clock)
Serial.begin(19200);
Timer1.initialize(5100);
data[band] = serial_getch();
Timer1.attachInterrupt( ScanDMD );
//dmd.drawBox( 0, 0, (32*DISPLAYS_ACROSS)-1, (16*DISPLAYS_DOWN)-1, GRAPHICS_NORMAL );
dmd.selectFont(Arial_Black_16);
dmd.drawString(6,1,"CJ",2,GRAPHICS_NORMAL);
delay(3000);
dmd.selectFont(SystemFont5x7);
dmd.drawString(2,0,"Audio",5,GRAPHICS_NORMAL);
dmd.drawString(2,9,"Analy",5,GRAPHICS_NORMAL);
delay(3000);
dmd.clearScreen( true );
//analogWrite(PIN_DMD_nOE, 5);
}
void loop()
{
int xpos;
byte serial_getch();
dmd.clearScreen( true );
for( band = 0; band < 32; band++ )
{
xpos = (band*1);
if (data[band]>=962) { dmd.drawLine( xpos, 15, xpos, 0, GRAPHICS_NORMAL ); } else
if (data[band]>=930) { dmd.drawLine( xpos, 15, xpos, 1, GRAPHICS_NORMAL ); } else
if (data[band]>=898) { dmd.drawLine( xpos, 15, xpos, 2, GRAPHICS_NORMAL ); } else
if (data[band]>=866) { dmd.drawLine( xpos, 15, xpos, 3, GRAPHICS_NORMAL ); } else
if (data[band]>=834) { dmd.drawLine( xpos, 15, xpos, 4, GRAPHICS_NORMAL ); } else
if (data[band]>=802) { dmd.drawLine( xpos, 15, xpos, 5, GRAPHICS_NORMAL ); } else
if (data[band]>=770) { dmd.drawLine( xpos, 15, xpos, 7, GRAPHICS_NORMAL ); } else
if (data[band]>=738) { dmd.drawLine( xpos, 15, xpos, 8, GRAPHICS_NORMAL ); } else
if (data[band]>=706) { dmd.drawLine( xpos, 15, xpos, 9, GRAPHICS_NORMAL ); } else
if (data[band]>=674) { dmd.drawLine( xpos, 15, xpos, 10, GRAPHICS_NORMAL ); } else
if (data[band]>=642) { dmd.drawLine( xpos, 15, xpos, 11, GRAPHICS_NORMAL ); } else
if (data[band]>=610) { dmd.drawLine( xpos, 15, xpos, 12, GRAPHICS_NORMAL ); } else
if (data[band]>=578) { dmd.drawLine( xpos, 15, xpos, 13, GRAPHICS_NORMAL ); } else
if (data[band]>=546) { dmd.drawLine( xpos, 15, xpos, 14, GRAPHICS_NORMAL ); } else
if (data[band]>=512) { dmd.drawLine( xpos, 15, xpos, 15, GRAPHICS_NORMAL ); } else
if (data[band]>=480) { dmd.drawLine( xpos, 15, xpos, 16, GRAPHICS_NORMAL ); } else
if (data[band]>=448) { dmd.drawLine( xpos, 15, xpos, 17, GRAPHICS_NORMAL ); } else
if (data[band]>=416) { dmd.drawLine( xpos, 15, xpos, 18, GRAPHICS_NORMAL ); } else
if (data[band]>=384) { dmd.drawLine( xpos, 15, xpos, 19, GRAPHICS_NORMAL ); } else
if (data[band]>=352) { dmd.drawLine( xpos, 15, xpos, 20, GRAPHICS_NORMAL ); } else
if (data[band]>=320) { dmd.drawLine( xpos, 15, xpos, 21, GRAPHICS_NORMAL ); } else
if (data[band]>=288) { dmd.drawLine( xpos, 15, xpos, 22, GRAPHICS_NORMAL ); } else
if (data[band]>=256) { dmd.drawLine( xpos, 15, xpos, 23, GRAPHICS_NORMAL ); } else
if (data[band]>=224) { dmd.drawLine( xpos, 15, xpos, 24, GRAPHICS_NORMAL ); } else
if (data[band]>=192) { dmd.drawLine( xpos, 15, xpos, 25, GRAPHICS_NORMAL ); } else
if (data[band]>=160) { dmd.drawLine( xpos, 15, xpos, 26, GRAPHICS_NORMAL ); } else
if (data[band]>=128) { dmd.drawLine( xpos, 15, xpos, 27, GRAPHICS_NORMAL ); } else
if (data[band]>=96) { dmd.drawLine( xpos, 15, xpos, 28, GRAPHICS_NORMAL ); } else
if (data[band]>=64) { dmd.drawLine( xpos, 15, xpos, 29, GRAPHICS_NORMAL ); } else
if (data[band]>=32) { dmd.drawLine( xpos, 15, xpos, 30, GRAPHICS_NORMAL ); } else
if (data[band]>=0) { dmd.drawLine( xpos, 15, xpos, 31, GRAPHICS_NORMAL ); }
}
}