From: Noah Tomkins Date: Tue, 7 Jul 2026 03:45:18 +0000 (-0400) Subject: Added Control of individual special chars, and build file X-Git-Url: https://git.tnoah.ca/?a=commitdiff_plain;ds=inline;p=clock.git Added Control of individual special chars, and build file --- diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..3719497 --- /dev/null +++ b/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +gcc -o clock ./src/clock.cpp -l wiringPi +./clock \ No newline at end of file diff --git a/src/display.c b/src/display.c index 05ec5b4..6d9adc0 100644 --- a/src/display.c +++ b/src/display.c @@ -2,10 +2,55 @@ #include #include -static int digits [3] = { 17, 27, 22 }; -static int segments [3] = { 23, 24, 25 }; +int binWriteDisplay (uint8_t digit, uint8_t segment); -static int binWriteDisplay(uint8_t digit, uint8_t segment) +const int digits [3] = { 17, 27, 22 }; +const int segments [3] = { 23, 24, 25 }; + +const int segmentDigits [] = +{ +// a b c d e f g Segments +// 6 5 4 3 2 1 0, // wiringPi pin No. + + 1, 1, 1, 1, 1, 1, 0, // 0 + 0, 1, 1, 0, 0, 0, 0, // 1 + 1, 1, 0, 1, 1, 0, 1, // 2 + 1, 1, 1, 1, 0, 0, 1, // 3 + 0, 1, 1, 0, 0, 1, 1, // 4 + 1, 0, 1, 1, 0, 1, 1, // 5 + 1, 0, 1, 1, 1, 1, 1, // 6 + 1, 1, 1, 0, 0, 0, 0, // 7 + 1, 1, 1, 1, 1, 1, 1, // 8 + 1, 1, 1, 1, 0, 1, 1, // 9 + 1, 1, 1, 0, 1, 1, 1, // A + 0, 0, 1, 1, 1, 1, 1, // b + 1, 0, 0, 1, 1, 1, 0, // C + 0, 1, 1, 1, 1, 0, 1, // d + 1, 0, 0, 1, 1, 1, 1, // E + 1, 0, 0, 0, 1, 1, 1, // F + 0, 0, 0, 0, 0, 0, 0, // blank +}; + +enum Symbol +{ + V = 0b0000, + COL1 = 0b0001, + COL2 = 0b0010, + ONE = 0b0011, + VCR = 0b0100, + DVD = 0b0101, + VHS = 0b0110, + + ANT = 0b1000, + CLK = 0b1001, + P = 0b1010, + NEG = 0b1011, + S = 0b1100, + PLAY = 0b1101, + REC = 0b1110 +}; + +int binWriteDisplay (uint8_t digit, uint8_t segment) { if (digit > 0b111 || segment > 0b111) { @@ -24,13 +69,35 @@ static int binWriteDisplay(uint8_t digit, uint8_t segment) return 0; } -static void displayOff (void) +void writeSymbol (enum Symbol symbol) { - binWriteDisplay(0b111, 0b111); + binWriteDisplay(symbol >> 3, symbol & 0b0111); +} + +int writeDigit (uint8_t digit, uint8_t value) +{ + if (digit > 4) + { + printf("Digit must be between 0 and 4"); + return 1; + } + + for (uint8_t i = 0; i < 7; i++) + { + + } + + //binWriteDisplay(digit + 2, ) + + return 0; } +void displayOff (void) +{ + binWriteDisplay(0b111, 0b111); +} -static void printBinary (int num) +void printBinary (int num) { for (int i = 3; i >= 0; i--) { @@ -39,9 +106,9 @@ static void printBinary (int num) printf("\n"); } -static void testDisplay (void) +void testDisplay (void) { - for (int i = 0; i < 0b111; i++) + /*for (int i = 0; i < 0b111; i++) { for (int j = 0; j < 0b111; j++) { @@ -49,12 +116,14 @@ static void testDisplay (void) printBinary(j); printf("\n"); binWriteDisplay(i, j); - delay(1000); + delayMicroseconds(100000); } - } + }*/ + writeSymbol(ANT); + writeSymbol(REC); } -static void setupDisplay (void) +void setupDisplay (void) { for (int i = 0; i < 3; i++) { @@ -66,4 +135,5 @@ static void setupDisplay (void) } displayOff(); -} \ No newline at end of file +} +