// // PORTDB_larsen2ways // // goes both ways: Back AND Forth :) // // 11 // 1098765432 const word dimbits[] = { 0b0000000000111100, // frame 1 0b0000000000111000, 0b0000000000110000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 11 // 1098765432 0b0000000001111000, // frame 2 0b0000000001110000, 0b0000000001100000, 0b0000000001100000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 23 // 1098765432 0b0000000011110000, // frame 3 0b0000000011100000, 0b0000000011000000, 0b0000000011000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 35 // 1098765432 0b0000000111100000, // frame 4 0b0000000111000000, 0b0000000110000000, 0b0000000110000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 47 // 1098765432 0b0000001111000000, // frame 5 **** 0b0000001110000000, 0b0000001100000000, 0b0000001100000000, 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000001000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 59 // 1098765432 0b0000001110000000, // frame 6 0b0000001100000000, 0b0000001100000000, 0b0000001100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000100000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 71 // 1098765432 0b0000001110000000, // frame 7 0b0000001110000000, 0b0000000110000000, 0b0000000110000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000010000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 83 // 1098765432 0b0000001111000000, // frame 8 0b0000000111000000, 0b0000000011000000, 0b0000000011000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000001000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 95 // 1098765432 0b0000000111100000, // frame 9 0b0000000011100000, 0b0000000001100000, 0b0000000001100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000100000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 107 // 1098765432 0b0000000011110000, // frame 10 0b0000000001110000, 0b0000000000110000, 0b0000000000110000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 119 // 1098765432 0b0000000001111000, // frame 11 0b0000000000111000, 0b0000000000011000, 0b0000000000011000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 131 // 1098765432 0b0000000000111100, // frame 12 0b0000000000011100, 0b0000000000001100, 0b0000000000001100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000100, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 143 // 1098765432 0b0000000000011100, // frame 13 0b0000000000001100, 0b0000000000001100, 0b0000000000001100, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000001000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, 0b0000000000000000, // 155 // 1098765432 0b0000000000011100, // frame 14 0b0000000000011100, 0b0000000000011000, 0b0000000000011000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 0b0000000000010000, 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