Due to 9000 char limit I had to split my code:
// 0987654321
0b0000011110000000, // frame 8
0b0000001110000000,
0b0000000110000000,
0b0000000110000000,
0b0000000010000000,
0b0000000010000000,
0b0000000010000000,
0b0000000010000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 10987654321
0b0000001111000000, // frame 9
0b0000000111000000,
0b0000000011000000,
0b0000000011000000,
0b0000000001000000,
0b0000000001000000,
0b0000000001000000,
0b0000000001000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000111100000, // frame 10
0b0000000011100000,
0b0000000001100000,
0b0000000001100000,
0b0000000000100000,
0b0000000000100000,
0b0000000000100000,
0b0000000000100000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000011110000, // frame 11
0b0000000001110000,
0b0000000000110000,
0b0000000000110000,
0b0000000000010000,
0b0000000000010000,
0b0000000000010000,
0b0000000000010000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000001111000, // frame 12
0b0000000000111000,
0b0000000000011000,
0b0000000000011000,
0b0000000000001000,
0b0000000000001000,
0b0000000000001000,
0b0000000000001000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000000111100, // frame 13
0b0000000000011100,
0b0000000000001100,
0b0000000000001100,
0b0000000000000100,
0b0000000000000100,
0b0000000000000100,
0b0000000000000100,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000000011111, // frame 14
0b0000000000001111,
0b0000000000000111,
0b0000000000000111,
0b0000000000000011,
0b0000000000000011,
0b0000000000000011,
0b0000000000000011,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000000001111, // frame 15
0b0000000000000111,
0b0000000000000111,
0b0000000000000111,
0b0000000000000111,
0b0000000000000100,
0b0000000000000100,
0b0000000000000100,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000000001111, // frame 16
0b0000000000001111,
0b0000000000001100,
0b0000000000001100,
0b0000000000001000,
0b0000000000001000,
0b0000000000001000,
0b0000000000001000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000000011111, // frame 17
0b0000000000011100,
0b0000000000011000,
0b0000000000011000,
0b0000000000010000,
0b0000000000010000,
0b0000000000010000,
0b0000000000010000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
// 0987654321
0b0000000000111100, // frame 18
0b0000000000111000,
0b0000000000110000,
0b0000000000110000,
0b0000000000100000,
0b0000000000100000,
0b0000000000100000,
0b0000000000100000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000};
unsigned long duration = 0;
unsigned long times_out = 1250; // frame's time out "speed"
// 500 for way fast on '328p
// 50000 for way slow
int idx;
byte framepointer = 0;
[code]void setup ()
{
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop ()
{
for (framepointer = 0; framepointer < 216; framepointer = (framepointer + 12))
{
for(duration=0; duration<times_out; duration++)
// times_out is the number of
// frame repetitions
{
for(idx = framepointer; idx < (framepointer + 12); idx++)
{
commitPORTs();
}
}
}
framepointer = 0;
}
void commitPORTs ()
{
PORTA = dimbits[idx];
PORTB = dimbits[idx]/256;
}