From abf4b28a99461ca9c8cb8ca82ce71ab36d93d8a0 Mon Sep 17 00:00:00 2001 From: Daniel Jones Date: Tue, 8 Jan 2019 01:30:46 +1030 Subject: added version that uses 8 bytes for the matrix, bit masking for each led --- matrix8bytes.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 matrix8bytes.c diff --git a/matrix8bytes.c b/matrix8bytes.c new file mode 100644 index 0000000..5d3ed63 --- /dev/null +++ b/matrix8bytes.c @@ -0,0 +1,69 @@ +/* + * This program 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 program 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 program. If not, see . + */ + +#include +#include +#include +#include +#include + +#define CIRCLE "◯" +#define BLACKCIRCLE "⬤" +#define BALLS 2 + +uint64_t matrix; + +void +printleds(void) +{ + printf("\0337"); + printf("%s", "\033[8;0F"); + printf("%s", "\033[0J"); + /* loop through each byte of matrix */ + int c = 56; + uint8_t byte; + while (c >= 0) + { + byte = (matrix >> c) & 0xff; + printf("%s %s %s %s %s %s %s %s\n", + (byte & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 1) & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 2) & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 3) & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 4) & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 5) & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 6) & 0x01) ? BLACKCIRCLE : CIRCLE, + ((byte >> 7) & 0x01) ? BLACKCIRCLE : CIRCLE); + c -= 8; + } + printf("\0338"); +} + +int +main(void) +{ + printf("\n\n\n\n\n\n\n\n\n"); + srand(time(NULL)); + matrix = 0xff00000000000000; + while (1) + { + matrix>>=8; + if (matrix == 0) + matrix = 0xff00000000000000; + printleds(); + usleep(200000); + } + return 0; +} -- cgit v1.2.3