// // PORTDB_larsen2ways // // goes both ways: Back AND Forth :) // // 11 // 1098765432 const word dimbits[] = { 0b0000001000000100, // frame 1 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 11 // 1098765432 0b0000000100001000, // frame 2 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 23 // 1098765432 0b0000000010010000, // frame 3 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000000100000, // frame 4 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000001100000, // frame 5 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000010010000, // frame 6 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000100001000, // frame 7 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000001000000100, // frame 8 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000100001000, // frame 9 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000010010000, // frame 10 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000001100000, // frame 11 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000001100000, // frame 12 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000010010000, // frame 13 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 1098765432 0b0000000100001000, // frame 14 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000}; // 167 unsigned long duration = 0; unsigned long times_out = 8000; // frame's time out "speed" // 500 for way fast // 50000 for way slow int idx; byte framepointer = 0; void setup () { //pinMode(13,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); // pinMode(11, OUTPUT); //PORTD &= 0b00000011; } void loop () { // framepointer limit == number of frames * 12 // it's the total of words in the dimbits[] array for (framepointer = 0; framepointer < 168; framepointer = (framepointer + 12)) // 0-11,12-33,24-35,36-47,48-59,60-71,72-83,84-95,96-107, // 108-119,120-131,132-143,144-155,156-167 { for(duration=0; duration