Skip to content
Browse files

Finally added the Shiftbrite plasma code..

  • Loading branch information...
1 parent 6d7aefc commit fea83bf01b26ae5e9fc85ab9bf15131e83579770 @cjdavis cjdavis committed
View
6 README
@@ -0,0 +1,6 @@
+Various stuff to work with the Hive13 LED windowmatrix
+
+More info:
+
+http://wiki.hive13.org/Glass_Block_LED_Matrix
+
View
52 Shiftbrite_plasma/Rainbow.h
@@ -0,0 +1,52 @@
+#ifndef Rainbow_h
+#define Rainbow_h
+//=============================================
+//MBI5168
+#define SH_DIR_OE DDRC
+#define SH_DIR_SDI DDRC
+#define SH_DIR_CLK DDRC
+#define SH_DIR_LE DDRC
+
+#define SH_BIT_OE 0x08
+#define SH_BIT_SDI 0x01
+#define SH_BIT_CLK 0x02
+#define SH_BIT_LE 0x04
+
+#define SH_PORT_OE PORTC
+#define SH_PORT_SDI PORTC
+#define SH_PORT_CLK PORTC
+#define SH_PORT_LE PORTC
+//============================================
+#define clk_rising {SH_PORT_CLK&=~SH_BIT_CLK;SH_PORT_CLK|=SH_BIT_CLK;}
+#define le_high {SH_PORT_LE|=SH_BIT_LE;}
+#define le_low {SH_PORT_LE&=~SH_BIT_LE;}
+#define enable_oe {SH_PORT_OE&=~SH_BIT_OE;}
+#define disable_oe {SH_PORT_OE|=SH_BIT_OE;}
+
+#define shift_data_1 {SH_PORT_SDI|=SH_BIT_SDI;}
+#define shift_data_0 {SH_PORT_SDI&=~SH_BIT_SDI;}
+//============================================
+#define open_line0 {PORTB=0x04;}
+#define open_line1 {PORTB=0x02;}
+#define open_line2 {PORTB=0x01;}
+#define open_line3 {PORTD=0x80;}
+#define open_line4 {PORTD=0x40;}
+#define open_line5 {PORTD=0x20;}
+#define open_line6 {PORTD=0x10;}
+#define open_line7 {PORTD=0x08;}
+#define close_all_line {PORTD&=~0xf8;PORTB&=~0x07;}
+//============================================
+
+#define CheckRequest (g8Flag1&0x01)
+#define SetRequest (g8Flag1|=0x01)
+#define ClrRequest (g8Flag1&=~0x01)
+
+//==============================================
+#define waitingcmd 0x00
+#define processing 0x01
+#define checking 0x02
+
+#define showPrefabnicatel 0x01
+#define showChar 0x02
+#define showColor 0x03
+#endif
View
80 Shiftbrite_plasma/Shiftbrite_plasma.pde
@@ -0,0 +1,80 @@
+#include <avr/pgmspace.h>
+
+unsigned char GamaTab[16]=
+{0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7};
+
+//========================================================
+unsigned char dots_color[5][3][8][4] =
+{
+ {
+//=====================================================
+ {//green
+ {0x00,0x00,0x00,0x4b},
+ {0x00,0x00,0x04,0xbf},
+ {0x00,0x00,0x4b,0xff},
+ {0x00,0x04,0xbf,0xff},
+ {0x00,0x4b,0xff,0xff},
+ {0x04,0xbf,0xff,0xff},
+ {0x4b,0xff,0xff,0xff},
+ {0xbf,0xff,0xff,0xfd}
+ },
+//=======================================================
+ {//red
+ {0xff,0xfd,0x71,0x00},
+ {0xff,0xd7,0x10,0x00},
+ {0xfd,0xf1,0x00,0x00},
+ {0xda,0x10,0x00,0x00},
+ {0x71,0x00,0x00,0x01},
+ {0x10,0x00,0x00,0x17},
+ {0x00,0x00,0x01,0x7e},
+ {0x00,0x00,0x17,0xef}
+ },
+//======================================================
+ {//blue
+ {0x06,0xef,0xff,0xff},
+ {0x6e,0xff,0xff,0xff},
+ {0xef,0xff,0xff,0xfa},
+ {0xff,0xff,0xff,0xa3},
+ {0xff,0xff,0xfa,0x30},
+ {0xff,0xfa,0xa3,0x00},
+ {0xff,0xfa,0x30,0x00},
+ {0xff,0xa3,0x00,0x00}
+ }
+ },
+ {
+//=====================================================
+ {//green
+ {0xFF,0xFF,0xFF,0x4b},
+ {0xFF,0xFF,0xF4,0xbf},
+ {0x00,0x00,0x4b,0xff},
+ {0x00,0x04,0xbf,0xff},
+ {0x00,0x4b,0xff,0xff},
+ {0x04,0xbf,0xff,0xff},
+ {0x4b,0xff,0xff,0xff},
+ {0xbf,0xff,0xff,0xfd}
+ },
+//=======================================================
+ {//red
+ {0xff,0xfd,0x71,0x00},
+ {0xff,0xd7,0x10,0x00},
+ {0xfd,0xf1,0x00,0x00},
+ {0xda,0x10,0x00,0x00},
+ {0x71,0x00,0x00,0x01},
+ {0x10,0x00,0x00,0x17},
+ {0x00,0x00,0x01,0x7e},
+ {0x00,0x00,0x17,0xef}
+ },
+//======================================================
+ {//blue
+ {0x06,0xef,0xff,0xff},
+ {0x6e,0xff,0xff,0xff},
+ {0xef,0xff,0xff,0xfa},
+ {0xff,0xff,0xff,0xa3},
+ {0xff,0xff,0xfa,0x30},
+ {0xff,0xfa,0xa3,0x00},
+ {0xff,0xfa,0x30,0x00},
+ {0xff,0xa3,0x00,0x00}
+ }
+ },
+};
+
View
BIN Shiftbrite_plasma/applet/HardwareSerial.cpp.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/Print.cpp.o
Binary file not shown.
View
52 Shiftbrite_plasma/applet/Rainbow.h
@@ -0,0 +1,52 @@
+#ifndef Rainbow_h
+#define Rainbow_h
+//=============================================
+//MBI5168
+#define SH_DIR_OE DDRC
+#define SH_DIR_SDI DDRC
+#define SH_DIR_CLK DDRC
+#define SH_DIR_LE DDRC
+
+#define SH_BIT_OE 0x08
+#define SH_BIT_SDI 0x01
+#define SH_BIT_CLK 0x02
+#define SH_BIT_LE 0x04
+
+#define SH_PORT_OE PORTC
+#define SH_PORT_SDI PORTC
+#define SH_PORT_CLK PORTC
+#define SH_PORT_LE PORTC
+//============================================
+#define clk_rising {SH_PORT_CLK&=~SH_BIT_CLK;SH_PORT_CLK|=SH_BIT_CLK;}
+#define le_high {SH_PORT_LE|=SH_BIT_LE;}
+#define le_low {SH_PORT_LE&=~SH_BIT_LE;}
+#define enable_oe {SH_PORT_OE&=~SH_BIT_OE;}
+#define disable_oe {SH_PORT_OE|=SH_BIT_OE;}
+
+#define shift_data_1 {SH_PORT_SDI|=SH_BIT_SDI;}
+#define shift_data_0 {SH_PORT_SDI&=~SH_BIT_SDI;}
+//============================================
+#define open_line0 {PORTB=0x04;}
+#define open_line1 {PORTB=0x02;}
+#define open_line2 {PORTB=0x01;}
+#define open_line3 {PORTD=0x80;}
+#define open_line4 {PORTD=0x40;}
+#define open_line5 {PORTD=0x20;}
+#define open_line6 {PORTD=0x10;}
+#define open_line7 {PORTD=0x08;}
+#define close_all_line {PORTD&=~0xf8;PORTB&=~0x07;}
+//============================================
+
+#define CheckRequest (g8Flag1&0x01)
+#define SetRequest (g8Flag1|=0x01)
+#define ClrRequest (g8Flag1&=~0x01)
+
+//==============================================
+#define waitingcmd 0x00
+#define processing 0x01
+#define checking 0x02
+
+#define showPrefabnicatel 0x01
+#define showChar 0x02
+#define showColor 0x03
+#endif
View
616 Shiftbrite_plasma/applet/Shiftbrite_plasma.cpp
@@ -0,0 +1,616 @@
+#include <avr/pgmspace.h>
+
+#include "WProgram.h"
+void HSVtoRGB(void *vRGB, void *vHSV);
+int RGBtoINT(void *vRGB);
+void setup();
+void SB_SendPacket();
+void WriteLEDArray();
+void
+CycleColorPalette();
+double
+dist(double a, double b, double c, double d);
+void
+plasma_morph();
+void loop();
+void SetPixel(int x, int y, int r, int g, int b);
+unsigned char GamaTab[16]=
+{0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7};
+
+//========================================================
+unsigned char dots_color[5][3][8][4] =
+{
+ {
+//=====================================================
+ {//green
+ {0x00,0x00,0x00,0x4b},
+ {0x00,0x00,0x04,0xbf},
+ {0x00,0x00,0x4b,0xff},
+ {0x00,0x04,0xbf,0xff},
+ {0x00,0x4b,0xff,0xff},
+ {0x04,0xbf,0xff,0xff},
+ {0x4b,0xff,0xff,0xff},
+ {0xbf,0xff,0xff,0xfd}
+ },
+//=======================================================
+ {//red
+ {0xff,0xfd,0x71,0x00},
+ {0xff,0xd7,0x10,0x00},
+ {0xfd,0xf1,0x00,0x00},
+ {0xda,0x10,0x00,0x00},
+ {0x71,0x00,0x00,0x01},
+ {0x10,0x00,0x00,0x17},
+ {0x00,0x00,0x01,0x7e},
+ {0x00,0x00,0x17,0xef}
+ },
+//======================================================
+ {//blue
+ {0x06,0xef,0xff,0xff},
+ {0x6e,0xff,0xff,0xff},
+ {0xef,0xff,0xff,0xfa},
+ {0xff,0xff,0xff,0xa3},
+ {0xff,0xff,0xfa,0x30},
+ {0xff,0xfa,0xa3,0x00},
+ {0xff,0xfa,0x30,0x00},
+ {0xff,0xa3,0x00,0x00}
+ }
+ },
+ {
+//=====================================================
+ {//green
+ {0xFF,0xFF,0xFF,0x4b},
+ {0xFF,0xFF,0xF4,0xbf},
+ {0x00,0x00,0x4b,0xff},
+ {0x00,0x04,0xbf,0xff},
+ {0x00,0x4b,0xff,0xff},
+ {0x04,0xbf,0xff,0xff},
+ {0x4b,0xff,0xff,0xff},
+ {0xbf,0xff,0xff,0xfd}
+ },
+//=======================================================
+ {//red
+ {0xff,0xfd,0x71,0x00},
+ {0xff,0xd7,0x10,0x00},
+ {0xfd,0xf1,0x00,0x00},
+ {0xda,0x10,0x00,0x00},
+ {0x71,0x00,0x00,0x01},
+ {0x10,0x00,0x00,0x17},
+ {0x00,0x00,0x01,0x7e},
+ {0x00,0x00,0x17,0xef}
+ },
+//======================================================
+ {//blue
+ {0x06,0xef,0xff,0xff},
+ {0x6e,0xff,0xff,0xff},
+ {0xef,0xff,0xff,0xfa},
+ {0xff,0xff,0xff,0xa3},
+ {0xff,0xff,0xfa,0x30},
+ {0xff,0xfa,0xa3,0x00},
+ {0xff,0xfa,0x30,0x00},
+ {0xff,0xa3,0x00,0x00}
+ }
+ },
+};
+
+/*
+
+Rainbowduino Plasma
+
+based on Pladma for the Meggy Jr. by Ken Corey
+
+*/
+
+/*
+ Rainbowduino_Plasma.pde
+
+ based on MeggyJr_Plasma.pde 0.3
+
+ Color cycling plasma
+
+ Version 0.1 - 8 July 2009
+
+ Copyright (c) 2009 Ben Combee. All right reserved.
+ Copyright (c) 2009 Ken Corey. All right reserved.
+ Copyright (c) 2008 Windell H. Oskay. All right reserved.
+ http://www.evilmadscientist.com/
+
+ This library is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+ */
+#include <math.h>
+#include "Rainbow.h"
+#include <avr/pgmspace.h>
+
+
+#define screenWidth 8
+#define screenHeight 8
+#define paletteSize 64
+
+#define MAXBRIGHT 1023
+#define MAXCURRENTRED 50
+#define MAXCURRENTGREEN 50
+#define MAXCURRENTBLUE 50
+
+// Pins.
+#define clockpin 13 // CI
+#define enablepin 10 // EI
+#define latchpin 9 // LI
+#define datapin 11 // DI
+
+typedef struct
+{
+ int r;
+ int g;
+ int b;
+} ColorRGB;
+
+//a color with 3 components: h, s and v
+typedef struct
+{
+ int h;
+ int s;
+ int v;
+} ColorHSV;
+
+int plasma[screenWidth][screenHeight];
+long paletteShift;
+byte state;
+
+int ledarray[screenWidth][screenHeight][3] = {0};
+
+int SB_CommandMode;
+int SB_RedCommand;
+int SB_GreenCommand;
+int SB_BlueCommand;
+
+// board mounted LED state - so we can watch the loops go by
+int boardLEDstate = 1;
+
+void SetPixel(byte x, byte y, byte r, byte g, byte b);
+
+//Converts an HSV color to RGB color
+void HSVtoRGB(void *vRGB, void *vHSV)
+{
+ float r, g, b, h, s, v; //this function works with floats between 0 and 1
+ float f, p, q, t;
+ int i;
+ ColorRGB *colorRGB=(ColorRGB *)vRGB;
+ ColorHSV *colorHSV=(ColorHSV *)vHSV;
+
+ h = (float)(colorHSV->h / 256.0);
+ s = (float)(colorHSV->s / 256.0);
+ v = (float)(colorHSV->v / 256.0);
+
+ //if saturation is 0, the color is a shade of grey
+ if(s == 0.0) {
+ b = v;
+ g = b;
+ r = g;
+ }
+ //if saturation > 0, more complex calculations are needed
+ else
+ {
+ h *= 6.0; //to bring hue to a number between 0 and 6, better for the calculations
+ i = (int)(floor(h)); //e.g. 2.7 becomes 2 and 3.01 becomes 3 or 4.9999 becomes 4
+ f = h - i;//the fractional part of h
+
+ p = (float)(v * (1.0 - s));
+ q = (float)(v * (1.0 - (s * f)));
+ t = (float)(v * (1.0 - (s * (1.0 - f))));
+
+ switch(i)
+ {
+ case 0: r=v; g=t; b=p; break;
+ case 1: r=q; g=v; b=p; break;
+ case 2: r=p; g=v; b=t; break;
+ case 3: r=p; g=q; b=v; break;
+ case 4: r=t; g=p; b=v; break;
+ case 5: r=v; g=p; b=q; break;
+ default: r = g = b = 0; break;
+ }
+ }
+ colorRGB->r = (int)(r * 255.0);
+ colorRGB->g = (int)(g * 255.0);
+ colorRGB->b = (int)(b * 255.0);
+}
+
+int RGBtoINT(void *vRGB)
+{
+ ColorRGB *colorRGB=(ColorRGB *)vRGB;
+
+ return (colorRGB->r<<16) + (colorRGB->g<<8) + colorRGB->b;
+}
+
+
+
+void setup() // run once, when the sketch starts
+{
+ byte color;
+ int x,y;
+
+ //_init();
+
+ // set board LED pin - ledPin
+ pinMode(13, OUTPUT);
+
+ // Make the random MORE RANDOM!
+ randomSeed(analogRead(0));
+
+ pinMode(datapin, OUTPUT);
+ pinMode(latchpin, OUTPUT);
+ pinMode(enablepin, OUTPUT);
+ pinMode(clockpin, OUTPUT);
+ SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);
+ digitalWrite(latchpin, LOW);
+ digitalWrite(enablepin, LOW);
+
+ SB_CommandMode = B01; // Write to current control registers
+ for (int z = 0; z < screenWidth * screenHeight; z++) SB_SendPacket();
+ delayMicroseconds(15);
+ digitalWrite(latchpin,HIGH); // latch data into registers
+ delayMicroseconds(15);
+ digitalWrite(latchpin,LOW);
+
+
+ // start with morphing plasma, but allow going to color cycling if desired.
+ state=1;
+ paletteShift=128000;
+
+ //generate the plasma once
+ for(x = 0; x < screenWidth; x++)
+ for(y = 0; y < screenHeight; y++)
+ {
+ //the plasma buffer is a sum of sines
+ color = (byte)
+ (
+ 128.0 + (128.0 * sin(x*8.0 / 16.0))
+ + 128.0 + (128.0 * sin(y*8.0 / 16.0))
+ ) / 2;
+ color>>4;
+ x &= 7;
+ y &= 7;
+ plasma[x][y] = color;
+ }
+}
+
+void SB_SendPacket() {
+
+ // set dot correction registers (adjusts current)
+ if (SB_CommandMode == B01) {
+ SB_RedCommand = MAXCURRENTRED;
+ SB_GreenCommand = MAXCURRENTGREEN;
+ SB_BlueCommand = MAXCURRENTBLUE;
+ }
+
+ SPDR = SB_CommandMode << 6 | SB_BlueCommand>>4;
+ while(!(SPSR & (1<<SPIF)));
+ SPDR = SB_BlueCommand<<4 | SB_RedCommand>>6;
+ while(!(SPSR & (1<<SPIF)));
+ SPDR = SB_RedCommand << 2 | SB_GreenCommand>>8;
+ while(!(SPSR & (1<<SPIF)));
+ SPDR = SB_GreenCommand;
+ while(!(SPSR & (1<<SPIF)));
+
+}
+
+void WriteLEDArray() {
+
+ SB_CommandMode = B00; // Write to PWM control registers (color)
+ /*
+ for (int h = 0;h<NumLEDs;h++) {
+ SB_RedCommand = LEDChannels[h][0];
+ SB_GreenCommand = LEDChannels[h][1];
+ SB_BlueCommand = LEDChannels[h][2];
+ SB_SendPacket();
+ }
+ */
+
+ for (int col = screenWidth - 1; col >=0; col--) {
+ if(!(col %2)) {
+ for (int row = screenHeight - 1; row >=0; row--) {
+ SB_RedCommand = ledarray[col][row][0];
+ SB_GreenCommand = ledarray[col][row][1];
+ SB_BlueCommand = ledarray[col][row][2];
+ SB_SendPacket();
+ }
+ } else {
+ for (int row = 0; row < screenHeight; row++) {
+ SB_RedCommand = ledarray[col][row][0];
+ SB_GreenCommand = ledarray[col][row][1];
+ SB_BlueCommand = ledarray[col][row][2];
+ SB_SendPacket();
+ }
+ }
+ }
+
+ delayMicroseconds(15); // tsu = 20ns + n*5ns - this is more than enough
+ digitalWrite(latchpin,HIGH); // latch data into registers
+ delayMicroseconds(15);
+ digitalWrite(latchpin,LOW);
+
+/*
+ SB_CommandMode = B01; // Write to current control registers
+ for (int z = 0; z < NumLEDs; z++) SB_SendPacket();
+ delayMicroseconds(15);
+ digitalWrite(latchpin,HIGH); // latch data into registers
+ delayMicroseconds(15);
+ digitalWrite(latchpin,LOW);
+ */
+}
+
+
+/*
+void
+plasma_semi (byte x1, byte y1, byte w, byte h, double zoom)
+{
+ int x, y;
+ byte color[3];
+ double a=0.0,b=0.0,c=0.0,d=0.0;
+
+ for(x = x1; x <= w; x++)
+ for(y = y1; y <= h; y++)
+ {
+ color[0] = (byte)
+ (
+ 128.0 + (128.0 * sin(x*zoom / 8.0))
+ + 128.0 + (128.0 * sin(y*zoom / 8.0))
+ ) / 2;
+ color[1] = color[0];
+ color[2] = color[0];
+ MySetPxClr(x, y, color);
+ }
+}
+*/
+void
+CycleColorPalette()
+{
+ int x,y;
+ //generate the palette
+ ColorRGB colorRGB;
+ ColorHSV colorHSV;
+
+ for(x = 0; x < screenWidth; x++)
+ for(y = 0; y < screenHeight; y++)
+ {
+ colorHSV.h=(plasma[x][y]+paletteShift)&0xff;
+ colorHSV.s=255;
+ colorHSV.v=255;
+ HSVtoRGB(&colorRGB, &colorHSV);
+
+ SetPixel(x, y, colorRGB.r, colorRGB.g, colorRGB.b);
+ }
+}
+
+double
+dist(double a, double b, double c, double d)
+{
+ return sqrt((c-a)*(c-a)+(d-b)*(d-b));
+}
+
+void
+plasma_morph()
+{
+ int x,y;
+ double value;
+ ColorRGB colorRGB;
+ ColorHSV colorHSV;
+
+ for(x = 0; x < screenWidth; x++)
+ for(y = 0; y < screenHeight; y++)
+ {
+ value = sin(dist(x + paletteShift, y, 128.0, 128.0) / 8.0)
+ + sin(dist(x, y, 64.0, 64.0) / 8.0)
+ + sin(dist(x, y + paletteShift / 7, 192.0, 64) / 7.0)
+ + sin(dist(x, y, 192.0, 100.0) / 8.0);
+ colorHSV.h=(int)((4 + value) * 128)&0xff;
+ colorHSV.s=255;
+ colorHSV.v=255;
+ HSVtoRGB(&colorRGB, &colorHSV);
+
+ SetPixel(x, y, colorRGB.r, colorRGB.g, colorRGB.b);
+ }
+}
+
+void loop() // run over and over again
+{
+
+ if (boardLEDstate ^= 1)
+ digitalWrite(13, HIGH); // turn LED on
+ else
+ digitalWrite(13, LOW); // turn LED off
+
+
+ paletteShift+=1;
+
+ switch(state) {
+ case 0:
+ CycleColorPalette();
+ break;
+ case 1:
+ plasma_morph();
+ break;
+ default:
+ state=0;
+ break;
+ }
+ WriteLEDArray();
+}
+
+
+//=============================================================
+//extern unsigned char dots_color[2][3][8][4]; //define Two Buffs (one for Display ,the other for receive data)
+//extern int dots_color[2][3][8][4]; //define Two Buffs (one for Display ,the other for receive data)
+extern unsigned char GamaTab[16]; //define the Gamma value for correct the different LED matrix
+//=============================================================
+unsigned char line,level;
+unsigned char Buffprt=0;
+unsigned char State=0;
+
+//void SetPixel(byte x, byte y, byte r, byte g, byte b)
+void SetPixel(int x, int y, int r, int g, int b)
+{
+ /*
+ x &= 7;
+ y &= 7;
+
+ r = (r >> 4);
+ g = (g >> 4);
+ b = (b >> 4);
+
+ if ((x & 1) == 1) {
+ dots_color[Buffprt][0][y][x >> 1] = r | (dots_color[Buffprt][0][y][x >> 1] & 0xF0);
+ dots_color[Buffprt][1][y][x >> 1] = g | (dots_color[Buffprt][1][y][x >> 1] & 0xF0);
+ dots_color[Buffprt][2][y][x >> 1] = b | (dots_color[Buffprt][2][y][x >> 1] & 0xF0);
+ }
+ else {
+ dots_color[Buffprt][0][y][x >> 1] = (r << 4) | (dots_color[Buffprt][0][y][x >> 1] & 0x0F);
+ dots_color[Buffprt][1][y][x >> 1] = (g << 4) | (dots_color[Buffprt][1][y][x >> 1] & 0x0F);
+ dots_color[Buffprt][2][y][x >> 1] = (b << 4) | (dots_color[Buffprt][2][y][x >> 1] & 0x0F);
+ }
+
+ */
+
+ ledarray[x][y][0] = r;
+ ledarray[x][y][1] = g;
+ ledarray[x][y][2] = b;
+
+}
+
+/*
+
+ISR(TIMER2_OVF_vect) //Timer2 Service
+{
+ TCNT2 = GamaTab[level]; // Reset a scanning time by gamma value table
+ flash_next_line(line,level); // sacan the next line in LED matrix level by level.
+ line++;
+ if(line>7) // when have scaned all LEC the back to line 0 and add the level
+ {
+ line=0;
+ level++;
+ if(level>15) level=0;
+ }
+}
+
+void init_timer2(void)
+{
+ TCCR2A |= (1 << WGM21) | (1 << WGM20);
+ TCCR2B |= (1<<CS22); // by clk/64
+ TCCR2B &= ~((1<<CS21) | (1<<CS20)); // by clk/64
+ TCCR2B &= ~((1<<WGM21) | (1<<WGM20)); // Use normal mode
+ ASSR |= (0<<AS2); // Use internal clock - external clock not used in Arduino
+ TIMSK2 |= (1<<TOIE2) | (0<<OCIE2B); //Timer2 Overflow Interrupt Enable
+ TCNT2 = GamaTab[0];
+ sei();
+}
+
+void _init(void) // define the pin mode
+{
+ DDRD=0xff;
+ DDRC=0xff;
+ DDRB=0xff;
+ PORTD=0;
+ PORTB=0;
+ init_timer2(); // initial the timer for scanning the LED matrix
+}
+
+//==============================================================
+void shift_1_bit(unsigned char LS) //shift 1 bit of 1 Byte color data into Shift register by clock
+{
+ if(LS)
+ {
+ shift_data_1;
+ }
+ else
+ {
+ shift_data_0;
+ }
+ clk_rising;
+}
+//==============================================================
+void flash_next_line(unsigned char line,unsigned char level) // scan one line
+{
+ disable_oe;
+ close_all_line;
+ open_line(line);
+ shift_24_bit(line,level);
+ enable_oe;
+}
+
+//==============================================================
+void shift_24_bit(unsigned char line,unsigned char level) // display one line by the color level in buff
+{
+ unsigned char color=0,row=0;
+ unsigned char data0=0,data1=0;
+ le_high;
+ for(color=0;color<3;color++)//GBR
+ {
+ for(row=0;row<4;row++)
+ {
+ data1=dots_color[Buffprt][color][line][row]&0x0f;
+ data0=dots_color[Buffprt][color][line][row]>>4;
+
+ if(data0>level) //gray scale,0x0f aways light
+ {
+ shift_1_bit(1);
+ }
+ else
+ {
+ shift_1_bit(0);
+ }
+
+ if(data1>level)
+ {
+ shift_1_bit(1);
+ }
+ else
+ {
+ shift_1_bit(0);
+ }
+ }
+ }
+ le_low;
+}
+
+
+
+//==============================================================
+void open_line(unsigned char line) // open the scaning line
+{
+ switch(line)
+ {
+ case 0: open_line0; break;
+ case 1: open_line1; break;
+ case 2: open_line2; break;
+ case 3: open_line3; break;
+ case 4: open_line4; break;
+ case 5: open_line5; break;
+ case 6: open_line6; break;
+ case 7: open_line7; break;
+ }
+}
+*/
+
+
+int main(void)
+{
+ init();
+
+ setup();
+
+ for (;;)
+ loop();
+
+ return 0;
+}
+
View
1 Shiftbrite_plasma/applet/Shiftbrite_plasma.cpp.eep
@@ -0,0 +1 @@
+:00000001FF
View
BIN Shiftbrite_plasma/applet/Shiftbrite_plasma.cpp.elf
Binary file not shown.
View
380 Shiftbrite_plasma/applet/Shiftbrite_plasma.cpp.hex
@@ -0,0 +1,380 @@
+:100000000C9470000C948D000C948D000C948D0059
+:100010000C948D000C948D000C948D000C948D002C
+:100020000C948D000C948D000C948D000C948D001C
+:100030000C948D000C948D000C948D000C948D000C
+:100040000C94D4060C948D000C948D000C948D00AF
+:100050000C948D000C948D000C948D000C948D00EC
+:100060000C948D000C948D0005A84CCDB2D44EB9E3
+:100070003836A9020C50B9918688083CA6AAAA2A4B
+:10008000BE000000803F00000000240027002A007E
+:1000900000000000250028002B00000000002300C5
+:1000A00026002900040404040404040402020202D9
+:1000B000020203030303030301020408102040802B
+:1000C00001020408102001020408102000000007AB
+:1000D0000002010000030406000000000000000010
+:1000E00011241FBECFEFD8E0DEBFCDBF11E0A0E0EE
+:1000F000B1E0E6E9F7E102C005900D92A830B10742
+:10010000D9F713E0A8E0B1E001C01D92AE31B1070C
+:10011000E1F70E94CD060C94C90B0C940000A0E0FE
+:10012000B0E0E5E9F0E00C949A0BEC01A880B9800E
+:10013000CA80DB80A114B104C104D10441F484E27B
+:10014000A82E89EDB82E8BE5C82E87E0D82EC601E3
+:10015000B5012DE133EF41E050E00E94550B27EA55
+:1001600031E440E050E00E94360B7B018C01C60177
+:10017000B5012DE133EF41E050E00E94550BCA017B
+:10018000B9012CEE34EF4FEF5FEF0E94360B6E0D8E
+:100190007F1D801F911F97FF04C0615070408040F9
+:1001A0009048688379838A839B839B01AC015F7746
+:1001B000B901CA01CDB7DEB7EAE00C94B60B0E94D4
+:1001C0008F00089580E091E00E948F000895609371
+:1001D000000170930101809302019093030108953F
+:1001E00020910D0330910E032130310571F482E32B
+:1001F00090E09093100380930F03909312038093E9
+:1002000011039093140380931303409113035091AF
+:100210001403CA01A4E095958795AA95E1F7F6E045
+:10022000220F331FFA95E1F7822B8EBD0DB407FE26
+:10023000FDCF20910F0330911003C901E6E09595A1
+:100240008795EA95E1F774E0440F551F7A95E1F739
+:10025000842B8EBD0DB407FEFDCF4091110350914C
+:100260001203852F992787FD9A95220F331F220F9E
+:10027000331F822B8EBD0DB407FEFDCF4EBD0DB4D6
+:1002800007FEFDCF08952F923F924F925F926F929B
+:100290007F928F929F92AF92BF92CF92DF92EF9216
+:1002A000FF920F931F933B014C0119012A01C801D2
+:1002B000B701A40193010E94F7077B018C01C601DD
+:1002C000B501A20191010E94F7075B016C01C80111
+:1002D000B701A80197010E94000A7B018C01C601A9
+:1002E000B501A60195010E94000A9B01AC01C8015D
+:1002F000B7010E94F8070E946D0A1F910F91FF90AD
+:10030000EF90DF90CF90BF90AF909F908F907F90B5
+:100310006F905F904F903F902F900895CF92DF9213
+:10032000EF92FF920F931F93CF93DF9310920E03E0
+:1003300010920D0317E0E12EF12CB0E3CB2ED12C5F
+:10034000E0FC27C0EC9CE001ED9CD00DFC9CD00DA6
+:100350001124C954DE4F07E010E088819981909301
+:10036000100380930F038A819B81909312038093E3
+:1003700011038C819D8190931403809313030E9439
+:10038000F0000150104026978FEF0F3F180729F714
+:1003900025C0EC9CE001ED9CD00DFC9CD00D1124FF
+:1003A000C357DE4F00E010E08881998190931003DD
+:1003B00080930F038A819B81909312038093110392
+:1003C0008C819D8190931403809313030E94F0000D
+:1003D0000F5F1F4F26960830110531F70894E1088A
+:1003E000F1088FEFE8168FEFF80609F0A9CF8FE03C
+:1003F00090E00E941C0789E061E00E94A2078FE064
+:1004000090E00E941C0789E060E00E94A207DF9153
+:10041000CF911F910F91FF90EF90DF90CF900895B3
+:100420004F925F926F927F928F929F92AF92BF9204
+:10043000CF92DF92EF92FF920F931F93CF93DF93B0
+:100440008DE061E00E94820780E00E9464070E94C4
+:10045000EF078BE061E00E94820789E061E00E9483
+:1004600082078AE061E00E9482078DE061E00E94DD
+:10047000820780E58CBD89E060E00E94A2078AE0E7
+:1004800060E00E94A20781E090E090930E038093C9
+:100490000D03C0E0D0E00E94F0002196C034D105E9
+:1004A000D1F78FE090E00E941C0789E061E00E9494
+:1004B000A2078FE090E00E941C0789E060E00E94A4
+:1004C000A20781E080938C0180E094EFA1E0B0E08E
+:1004D0008093880190938901A0938A01B0938B0146
+:1004E000C0E0D0E07AC0BE01882777FD8095982FC4
+:1004F0000E94FB0820E030E040E051E40E94000A46
+:1005000020E030E040E85DE30E94000A0E94630AB8
+:100510006B017C01B801882777FD8095982F0E9498
+:10052000FB0820E030E040E051E40E94000A20E0B7
+:1005300030E040E85DE30E94000A0E94630A4B013C
+:100540005C01C770D07027E0622E712C602271228E
+:100550008E0193E0000F111F9A95E1F7060D171D0C
+:10056000000F111F085F1E4FC701B60120E030E0E9
+:1005700040E053E40E94000A20E030E040E053E411
+:100580000E94F80720E030E040E053E40E94F807C2
+:100590006B017C01C501B40120E030E040E053E490
+:1005A0000E94000A9B01AC01C701B6010E94F80736
+:1005B0000E94CD086695F8016083118283010F5F68
+:1005C0001F4F0894411C511CF8E04F16510409F0CC
+:1005D0008ACF2196C830D1052CF400E010E04424E5
+:1005E000552481CFDF91CF911F910F91FF90EF9014
+:1005F000DF90CF90BF90AF909F908F907F906F9043
+:100600005F904F9008952F923F924F925F926F921A
+:100610007F928F929F92AF92BF92CF92DF92EF9292
+:10062000FF920F931F93DF93CF93CDB7DEB76297FF
+:100630000FB6F894DEBF0FBECDBF898B9A8B8B01AE
+:10064000DB01ED90FC90119712966D917C911397C0
+:10065000882777FD8095982F0E94FB0820E030E0E6
+:1006600040E85BE30E94000A6D837E838F83988756
+:10067000F80164817581882777FD8095982F0E9405
+:10068000FB0820E030E040E85BE30E94000A698755
+:100690007A878B879C876D817E818F81988520E00A
+:1006A00030E040E050E00E945C08882329F489850E
+:1006B0009A85AB85BC85F5C0B701882777FD809505
+:1006C000982F0E94FB0820E030E040E85BE30E94A6
+:1006D000000A20E030E040EC50E40E94000A7B0178
+:1006E0008C010E9436090E94C8086D877E878F871B
+:1006F000988B4D845E84B201882777FD8095982F72
+:100700000E94FB089B01AC01C801B7010E94F707DA
+:100710007B018C0160E070E080E89FE32D813E81E9
+:100720004F8158850E94F7079B01AC0169857A8546
+:100730008B859C850E94000A5B016C016D817E8126
+:100740008F819885A80197010E94000A9B01AC0146
+:1007500060E070E080E89FE30E94F7079B01AC0136
+:1007600069857A858B859C850E94000A3B014C0136
+:1007700060E070E080E89FE3A80197010E94F7071E
+:100780009B01AC016D817E818F8198850E94000A5A
+:100790009B01AC0160E070E080E89FE30E94F707F6
+:1007A0009B01AC0169857A858B859C850E94000A36
+:1007B0007B018C0192E049165104C9F1A3E04A166D
+:1007C00051044CF441145104F9F0F1E04F16510476
+:1007D00009F063C00EC084E048165104F1F194E0C2
+:1007E000491651048CF1A5E04A16510409F055C090
+:1007F00045C0C301D40189839A83AB83BC83298418
+:100800003A844B845C840CC089859A85AB85BC8511
+:1008100089839A83AB83BC83C701D8011C012D0156
+:100820009501A601C901DA017C018D0142C0C50113
+:10083000D60189839A83AB83BC8329843A844B8411
+:100840005C849701A801EECFC501D60189839A8304
+:10085000AB83BC839301A40108C0C701D80189837D
+:100860009A83AB83BC839501A601C901DA011C01FF
+:100870002D01E984FA840B851C851BC089859A8526
+:10088000AB85BC8589839A83AB83BC83C501D601C4
+:100890001C012D019301A401C5CF80E090E0A0E0F0
+:1008A000B0E089839A83AB83BC831C012D017C015A
+:1008B0008D0169817A818B819C8120E030E04FE756
+:1008C00053E40E94000A0E94C808A989BA896D935E
+:1008D0007C93C201B10120E030E04FE753E40E9475
+:1008E000000A0E94C808E989FA8973836283C801F3
+:1008F000B70120E030E04FE753E40E94000A0E9475
+:10090000C808A989BA8915967C936E931497629644
+:100910000FB6F894DEBF0FBECDBFCF91DF911F9110
+:100920000F91FF90EF90DF90CF90BF90AF909F908E
+:100930008F907F906F905F904F903F902F90089591
+:100940002F923F924F925F926F927F928F929F92DF
+:10095000AF92BF92CF92DF92EF92FF920F931F93CD
+:10096000DF93CF93CDB7DEB7A6970FB6F894DEBF6F
+:100970000FBECDBF1D861E861F86188A11C12B890A
+:100980003C89B901882777FD8095982F0E94FB0844
+:100990001B012C01609188017091890180918A016D
+:1009A00090918B012D853E854F855889620F731F6D
+:1009B000841F951F0E94FB08A20191010F2EF0E0F9
+:1009C000EF2EF0E0FF2EF0E00F2FF3E41F2FF02DBD
+:1009D000570168010E94430120E030E040E05EE3FF
+:1009E0000E94000A0E94630A6F8F78A389A39AA3CA
+:1009F0006BA17CA18DA19EA10E94FB083B014C0133
+:100A0000A20191010F2EF0E0EF2EF0E0FF2EF0E8B2
+:100A10000F2FF2E41F2FF02D570168010E944301B0
+:100A200020E030E040E05EE30E94000A0E94630A9A
+:100A30006B8F7C8F8D8F9E8F609188017091890163
+:100A400080918A0190918B0127E030E040E050E0F6
+:100A50000E94550B8B899C89AD89BE89280F391F4F
+:100A60004A1F5B1FCA01B9010E94FB089B01AC0130
+:100A7000C401B3010F2EF0E0EF2EF0E0FF2EF0E402
+:100A80000F2FF3E41F2FF02D0E94430120E030E0F0
+:100A900040EE50E40E9460080E94630A6F8B788FDA
+:100AA000898F9A8FC401B301A20191010F2EF0E04A
+:100AB000AF2EF0E0BF2EF8ECCF2EF2E4DF2EF02DBB
+:100AC0000E94430120E030E040E05EE30E94000A23
+:100AD0000E94630A7B018C016F8D78A189A19AA184
+:100AE0002B8D3C8D4D8D5E8D0E94F8072F89388DA2
+:100AF000498D5A8D0E94F807A80197010E94F807B6
+:100B000020E030E040E850E40E94F80720E030E0C8
+:100B100040E053E40E94000A0E94C8087070788781
+:100B20006F83AFEFB0E0BA87A987BC87AB87CE01F0
+:100B30000196BE01695F7F4F0E9403032B813C81B8
+:100B40004D815E8189819A81E989FA8991838083C7
+:100B500033832283558344832B893C894D895E8965
+:100B60002F5F3F4F4F4F5F4F2B8B3C8B4D8B5E8BDF
+:100B70003696FA8BE98B283031054105510509F08D
+:100B8000FECE8D859E85AF85B8890196A11DB11DCC
+:100B90008D879E87AF87B88B0897A105B105E9F0CF
+:100BA0008D859E85E0E3F0E08E9FD0018F9FB00D94
+:100BB0009E9FB00D1124A357BE4FBA8BA98B1B8AE1
+:100BC0001C8A1D8A1E8A9C01442737FD4095542F9C
+:100BD0002BA33CA34DA35EA3D2CEA6960FB6F8944A
+:100BE000DEBF0FBECDBFCF91DF911F910F91FF9060
+:100BF000EF90DF90CF90BF90AF909F908F907F90BD
+:100C00006F905F904F903F902F9008952F923F925A
+:100C10004F925F926F927F928F929F92AF92BF920C
+:100C2000CF92DF92EF92FF920F931F93DF93CF93B8
+:100C3000CDB7DEB72C970FB6F894DEBF0FBECDBF91
+:100C4000AA24BB2460E3262E312C57E0452E512CDC
+:100C50004C0E5D1E3E010894611C711C4FEF842EEA
+:100C6000912C32C08091880190918901F7012191E6
+:100C700031917F01820F931F907098878F839A869E
+:100C800089869C868B86C301B2010E9403032B8157
+:100C90003C814D815E8189819A81F80191838083B5
+:100CA00033832283558344830894C11CD11C0A5F7B
+:100CB0001F4FF8E0CF16D104A9F60894A11CB11C6F
+:100CC00088E0A816B104B1F0750134E0EE0CFF1C09
+:100CD0003A95E1F7E8E0F1E0EE0EFF1EA29C8001FC
+:100CE000A39C100DB29C100D112403571E4FCC2451
+:100CF000DD24B8CF2C960FB6F894DEBF0FBECDBF63
+:100D0000CF91DF911F910F91FF90EF90DF90CF90E7
+:100D1000BF90AF909F908F907F906F905F904F901B
+:100D20003F902F900895809104019091050121E05A
+:100D300030E0822793279093050180930401892B4B
+:100D400019F08DE061E002C08DE060E00E94A20732
+:100D50008091880190918901A0918A01B0918B01C5
+:100D60000196A11DB11D8093880190938901A093E4
+:100D70008A01B0938B0180918C01882319F0813016
+:100D800039F403C00E94060605C00E94A00402C0F8
+:100D900010928C010E948E0108950E942A070E94E1
+:100DA00010020E949306FDCF1F920F920FB60F9272
+:100DB00011242F933F938F939F93AF93BF93809171
+:100DC000190390911A03A0911B03B0911C03309159
+:100DD0001D030196A11DB11D232F2D5F2D3720F07E
+:100DE0002D570196A11DB11D20931D03809319035A
+:100DF00090931A03A0931B03B0931C0380911503D7
+:100E000090911603A0911703B09118030196A11DAC
+:100E1000B11D8093150390931603A0931703B0930D
+:100E20001803BF91AF919F918F913F912F910F9098
+:100E30000FBE0F901F901895019759F0FC01EE0F0F
+:100E4000FF1FEE0FFF1F32978FB7F8943197F1F71E
+:100E50008FBF0895789484B5826084BD84B5816025
+:100E600084BD85B5826085BD85B5816085BDEEE6B2
+:100E7000F0E0808181608083E1E8F0E08081826041
+:100E80008083808181608083E0E8F0E08081816000
+:100E90008083E1EBF0E0808184608083E0EBF0E030
+:100EA000808181608083EAE7F0E0808184608083D4
+:100EB000808182608083808181608083808180687E
+:100EC00080831092C10008958F70909106019295D1
+:100ED000990F990F907C982B90937C0080917A00C9
+:100EE000806480937A0080917A0086FDFCCF209107
+:100EF000780040917900942F80E030E0282B392B46
+:100F0000C9010895282F30E0C90188549F4FFC0182
+:100F100094912C553F4FF9018491882391F0E82F4B
+:100F2000F0E0EE0FFF1FEA57FF4FA591B491662343
+:100F300029F48C91909589238C9308958C91892B19
+:100F40008C930895482F50E0CA0184539F4FFC01B1
+:100F50002491CA0188549F4FFC0194914C555F4FD6
+:100F6000FA0134913323D1F1222331F1233021F4DA
+:100F7000809180008F7705C0243031F4809180000B
+:100F80008F7D8093800018C0213019F484B58F774D
+:100F900004C0223021F484B58F7D84BD0DC026307D
+:100FA00021F48091B0008F7705C0273029F480911B
+:100FB000B0008F7D8093B000E32FF0E0EE0FFF1FB5
+:100FC000E057FF4FA591B491662329F48C91909539
+:100FD00089238C9308958C91892B8C930895009785
+:100FE00029F0BC0180E090E00E94E700089550588D
+:100FF000BB27AA270ED0B3C1A4D130F0A9D120F0CD
+:1010000031F49F3F11F41EF499C10EF4E095E7FB13
+:1010100064C1E92FB5D180F3BA176207730784075B
+:10102000950718F071F49EF5E4C10EF4E0950B2ECF
+:10103000BA2FA02D0B01B90190010C01CA01A0012A
+:101040001124FF27591B99F0593F50F4503E68F185
+:101050001A16F040A22F232F342F4427585FF3CFC6
+:10106000469537952795A795F0405395C9F77EF497
+:101070001F16BA0B620B730B840BBAF09150A1F0E0
+:10108000FF0FBB1F661F771F881FC2F70EC0BA0F66
+:10109000621F731F841F48F4879577956795B795EE
+:1010A000F7959E3F08F0B3CF9395880F08F09927E6
+:1010B000EE0F979587950895ECD008F481E0089598
+:1010C0000CD04DC145D140F03CD130F021F45F3F10
+:1010D00019F003C151118EC131C152D198F3992336
+:1010E000C9F35523B1F3951B550BBB27AA276217EC
+:1010F0007307840738F09F5F5F4F220F331F441F31
+:10110000AA1FA9F333D00E2E3AF0E0E830D0915068
+:101110005040E695001CCAF729D0FE2F27D0660F55
+:10112000771F881FBB1F261737074807AB07B0E894
+:1011300009F0BB0B802DBF01FF2793585F4F2AF0AA
+:101140009E3F510568F0C9C055C15F3FECF3983E22
+:10115000DCF3869577956795B795F7959F5FC9F707
+:10116000880F911D9695879597F90895E1E0660F90
+:10117000771F881FBB1F621773078407BA0720F009
+:10118000621B730B840BBA0BEE1F88F7E095089572
+:1011900004D06894B1112EC10895FAD088F09F57F9
+:1011A00090F0B92F9927B751A0F0D1F0660F771FB3
+:1011B000881F991F1AF0BA95C9F712C0B13081F093
+:1011C00018D1B1E0089515C1672F782F8827B85F2F
+:1011D00039F0B93FCCF3869577956795B395D9F7F4
+:1011E0003EF490958095709561957F4F8F4F9F4FFE
+:1011F0000895E89409C097FB3EF49095809570950A
+:1012000061957F4F8F4F9F4F9923A9F0F92F96E952
+:10121000BB279395F695879577956795B795F111C7
+:10122000F8CFFAF4BB0F11F460FF1BC06F5F7F4F64
+:101230008F4F9F4F16C0882311F096E911C0772376
+:1012400021F09EE8872F762F05C0662371F096E87F
+:10125000862F70E060E02AF09A95660F771F881F4E
+:10126000DAF7880F9695879597F90895ABD080F0B7
+:101270009F3740F491110EF0BDC060E070E080E84F
+:101280009FEB089526F41B16611D711D811D2BC057
+:1012900045C0990F0008550FAA0BE0E8FEEF16169F
+:1012A0001706E807F907C0F012161306E407F5075A
+:1012B00098F0621B730B840B950B39F40A2661F0CE
+:1012C000232B242B252B21F408950A2609F4A14071
+:1012D000A6958FEF811D811D089597F99F6780E87E
+:1012E00070E060E00895882371F4772321F098502E
+:1012F000872B762F07C0662311F499270DC09051D4
+:10130000862B70E060E02AF09A95660F771F881FA1
+:10131000DAF7880F9695879597F908959F3F49F0DA
+:10132000915028F4869577956795B7959F5F80389B
+:101330009F4F880F9695879597F908959FEF80ECBA
+:10134000089500240A94161617061806090608952B
+:1013500000240A9412161306140605060895092E91
+:101360000394000C11F4882352F0BB0F40F4BF2B00
+:1013700011F460FF04C06F5F7F4F8F4F9F4F089540
+:1013800057FD9058440F551F59F05F3F71F0479536
+:10139000880F97FB991F61F09F3F79F0879508951B
+:1013A000121613061406551FF2CF4695F1DF08C03A
+:1013B000161617061806991FF1CF86957105610557
+:1013C00008940895E5DFA0F0BEE7B91788F4BB27BD
+:1013D0009F3860F41616B11D672F782F8827985F05
+:1013E000F7CF869577956795B11D93959639C8F394
+:1013F0000895E894BB2766277727CB0197F90895CE
+:101400000BD0ADCF9EDF28F0A3DF18F0952309F0B5
+:1014100064CF94CF1124EECFB3DFA0F3959FD1F327
+:10142000950F50E0551F629FF001729FBB27F00D92
+:10143000B11D639FAA27F00DB11DAA1F649F6627E7
+:10144000B00DA11D661F829F2227B00DA11D621F36
+:10145000739FB00DA11D621F839FA00D611D221FF0
+:10146000749F3327A00D611D231F849F600D211DD4
+:10147000822F762F6A2F11249F5750408AF0E1F077
+:1014800088234AF0EE0FFF1FBB1F661F771F881FC0
+:1014900091505040A9F79E3F510570F01ECFAACF42
+:1014A0005F3FECF3983EDCF3869577956795B795AB
+:1014B000F795E7959F5FC1F7FE2B880F911D9695D5
+:1014C000879597F908959F935AD00F9007FCEE5F88
+:1014D00086C011F40EF432CF21CF5ADFD0F3992316
+:1014E000D9F3CEF39F57550B87FF41D0569597956B
+:1014F000B0E020F4660F771F881FBB1F1F930F9368
+:1015000000249001A0018001F001A0E80E0F1F1F30
+:101510000A1E511D601B710B8009B50B48F4600F4A
+:10152000711F801DB51F0E1B1F0B0A0A510907C032
+:101530002E0F3F1F4A1F0E0F1F1F0A1E511D660F41
+:10154000771F881FBB1FA695F795E795F8F6061736
+:10155000170708065B07211D311D411D0F911F91C3
+:10156000B901842F9158880F9695879508959150C9
+:101570005040660F771F881FD2F70895DFCE08DF2F
+:10158000E8F3E894EFEFBB273FE048EC5FE76B3D03
+:1015900073078407950708F1FF279F57B25A6A4DD2
+:1015A0007F40894CF04032F4BE556542704F86430F
+:1015B000FF4F0894EE1F915030F0BB0F661F771F4E
+:1015C000881FFF1FEBCF9EE7882332F0BB0F661FFB
+:1015D000771F881F9A95C1F79395E0959FCEEF935B
+:1015E000E0FF06C0A2EA2AED3FE049EC5FEB11DD27
+:1015F000B6DE0F90039401FC9058E8E6F0E000C0DE
+:101600009F938F937F936F93FF93EF939B01AC0115
+:10161000F7DEEF91FF9105D02F913F914F915F91B0
+:10162000EFCEDF93CF931F930F93FF92EF92DF9252
+:101630007B018C01689405C0DA2EEF01EDDEFE011E
+:10164000E894A5912591359145915591AEF3EF011F
+:10165000E0DCFE019701A801DA9479F7DF90EF90C2
+:10166000FF900F911F91CF91DF910895629FD0015C
+:10167000739FF001829FE00DF11D649FE00DF11D4D
+:10168000929FF00D839FF00D749FF00D659FF00DFC
+:101690009927729FB00DE11DF91F639FB00DE11DE9
+:1016A000F91FBD01CF011124089597FB092E0526CE
+:1016B0000ED057FD04D014D00AD0001C38F4509539
+:1016C0004095309521953F4F4F4F5F4F0895F6F766
+:1016D00090958095709561957F4F8F4F9F4F08959E
+:1016E000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F26
+:1016F000EE1FFF1FA217B307E407F50720F0A21B98
+:10170000B30BE40BF50B661F771F881F991F1A9404
+:1017100069F760957095809590959B01AC01BD012E
+:10172000CF0108952F923F924F925F926F927F92D6
+:101730008F929F92AF92BF92CF92DF92EF92FF92E1
+:101740000F931F93CF93DF93CDB7DEB7CA1BDB0B8D
+:101750000FB6F894DEBF0FBECDBF09942A88398832
+:1017600048885F846E847D848C849B84AA84B98439
+:10177000C884DF80EE80FD800C811B81AA81B98145
+:10178000CE0FD11D0FB6F894DEBF0FBECDBFED0159
+:061790000895F894FFCF5C
+:08179600010000000100010048
+:00000001FF
View
BIN Shiftbrite_plasma/applet/Shiftbrite_plasma.cpp.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/WInterrupts.c.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/WMath.cpp.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/core.a
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/pins_arduino.c.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/wiring.c.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/wiring_analog.c.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/wiring_digital.c.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/wiring_pulse.c.o
Binary file not shown.
View
BIN Shiftbrite_plasma/applet/wiring_shift.c.o
Binary file not shown.

0 comments on commit fea83bf

Please sign in to comment.
Something went wrong with that request. Please try again.