#include <stdint.h>
#include <wiringPi.h>
-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)
{
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--)
{
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++)
{
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++)
{
}
displayOff();
-}
\ No newline at end of file
+}
+