int currentAnimationID = 0; struct AnimationData { const uint8_t *animationPtr; unsigned int animationFrameCount; }; //animations created using https://jasonacox.github.io/TM1637TinyDisplay/examples/7-segment-animator.html /* Animation Data - HGFEDCBA Map */ const uint8_t ANIMATION1[31][4] = { { 0x00, 0x00, 0x00, 0x01 }, // Frame 0 { 0x00, 0x00, 0x01, 0x00 }, // Frame 1 { 0x00, 0x01, 0x00, 0x00 }, // Frame 2 { 0x01, 0x00, 0x00, 0x00 }, // Frame 3 { 0x20, 0x00, 0x00, 0x00 }, // Frame 4 { 0x10, 0x00, 0x00, 0x00 }, // Frame 5 { 0x08, 0x00, 0x00, 0x00 }, // Frame 6 { 0x00, 0x08, 0x00, 0x00 }, // Frame 7 { 0x00, 0x00, 0x08, 0x00 }, // Frame 8 { 0x00, 0x00, 0x00, 0x08 }, // Frame 9 { 0x00, 0x00, 0x00, 0x04 }, // Frame 10 { 0x00, 0x00, 0x00, 0x02 }, // Frame 11 { 0x00, 0x00, 0x01, 0x01 }, // Frame 12 { 0x01, 0x01, 0x00, 0x00 }, // Frame 13 { 0x30, 0x00, 0x00, 0x00 }, // Frame 14 { 0x08, 0x08, 0x00, 0x00 }, // Frame 15 { 0x00, 0x00, 0x08, 0x08 }, // Frame 16 { 0x00, 0x00, 0x00, 0x06 }, // Frame 17 { 0x00, 0x01, 0x01, 0x01 }, // Frame 18 { 0x31, 0x00, 0x00, 0x00 }, // Frame 19 { 0x08, 0x08, 0x08, 0x00 }, // Frame 20 { 0x00, 0x00, 0x00, 0x0e }, // Frame 21 { 0x01, 0x01, 0x01, 0x01 }, // Frame 22 { 0x38, 0x08, 0x00, 0x00 }, // Frame 23 { 0x00, 0x00, 0x08, 0x0e }, // Frame 24 { 0x31, 0x01, 0x01, 0x01 }, // Frame 25 { 0x08, 0x08, 0x08, 0x0e }, // Frame 26 { 0x39, 0x09, 0x09, 0x0f }, // Frame 27 { 0x46, 0x76, 0x76, 0x70 }, // Frame 28 { 0x40, 0x40, 0x40, 0x40 }, // Frame 29 { 0x00, 0x40, 0x40, 0x00 } // Frame 30 }; /* Animation Data - HGFEDCBA Map */ const uint8_t ANIMATION2[][4] = { { 0x00, 0x40, 0x40, 0x00 }, // Frame 0 { 0x00, 0x40, 0x40, 0x00 }, // Frame 0 { 0x00, 0x49, 0x49, 0x00 }, // Frame 1 { 0x40, 0x49, 0x49, 0x40 }, // Frame 2 { 0x40, 0x09, 0x09, 0x40 }, // Frame 3 { 0x09, 0x00, 0x00, 0x09 }, // Frame 4 }; /* Animation Data - HGFEDCBA Map */ const uint8_t ANIMATION3[][4] = { { 0x00, 0x40, 0x40, 0x00 }, // Frame 0 { 0x40, 0x40, 0x40, 0x40 }, // Frame 1 { 0x40, 0x09, 0x09, 0x40 }, // Frame 2 { 0x09, 0x09, 0x09, 0x09 }, // Frame 3 { 0x09, 0x00, 0x00, 0x09 }, // Frame 4 { 0x00, 0x00, 0x00, 0x00 }, // Frame 5 { 0x39, 0x3f, 0x37, 0x71 }, { 0x39, 0x3f, 0x37, 0x71 }, { 0x39, 0x3f, 0x37, 0x71 }, { 0x39, 0x3f, 0x37, 0x71 }, { 0x39, 0x3f, 0x37, 0x71 }, { 0x39, 0x3f, 0x37, 0x71 }, { 0x00, 0x00, 0x00, 0x00 }, }; /* Animation Data - HGFEDCBA Map */ const uint8_t ANIMATION4[][4] = { { 0x09, 0x00, 0x00, 0x09 }, // Frame 0 { 0x09, 0x09, 0x09, 0x09 }, // Frame 1 { 0x40, 0x09, 0x09, 0x40 }, // Frame 2 { 0x40, 0x40, 0x40, 0x40 }, // Frame 3 { 0x00, 0x40, 0x40, 0x00 }, // Frame 4 { 0x00, 0x00, 0x00, 0x00 }, // Frame 5 }; AnimationData animData[] = { {(const uint8_t*)ANIMATION1, sizeof(ANIMATION1) / (sizeof(const uint8_t)*4)}, {(const uint8_t*)ANIMATION2, sizeof(ANIMATION2) / (sizeof(const uint8_t)*4)}, {(const uint8_t*)ANIMATION3, sizeof(ANIMATION3) / (sizeof(const uint8_t)*4)}, {(const uint8_t*)ANIMATION4, sizeof(ANIMATION4) / (sizeof(const uint8_t)*4)} };