Brendon Ky / Mbed 2 deprecated cs_335_speedometer

Dependencies:   mbed mbed-rtos

Revision:
17:082d51603f20
Child:
18:ef0569bea7e9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/displayDriver.cpp	Tue Dec 01 09:55:54 2020 +0000
@@ -0,0 +1,53 @@
+DigitalOut a(p19);
+DigitalOut b(p10);
+DigitalOut c(p9);
+DigitalOut d(p7);
+DigitalOut e(p8);
+DigitalOut f(p20);
+DigitalOut g(p17);
+DigitalOut dp(p18);
+
+DigitalOut cat[] = {cat1, cat2};
+DigitalOut display[] = {a, b, c, d, e, f, g};
+
+const int digits[10][7] = {
+        {1, 1, 1, 1, 1, 1, 0},
+        {0, 1, 1, 0, 0, 0, 0},
+        {1, 1, 0, 1, 1, 0, 1},
+        {1, 1, 1, 1, 0, 0, 1},
+        {0, 1, 1, 0, 0, 1, 1},
+        {1, 0, 1, 1, 0, 1, 1},
+        {1, 0, 1, 1, 1, 1, 1},
+        {1, 1, 1, 0, 0, 0, 0},
+        {1, 1, 1, 1, 1, 1, 1},
+        {1, 1, 1, 1, 0, 1, 1}
+};
+
+void display_num(float num) {
+    int dpi = 1;
+    int numi = (int)(num);
+    
+    if (((int)num)/10 == 0) {
+        dpi = 0;
+        numi = (int)(num*10);
+    }
+    
+    int disp_digits[] = {numi/10, numi%10};
+    
+    while (true) {
+        for (int d=0; d<2; d++) {
+            cat[d] = 1;
+            cat[(d+1)%2] = 0;
+            for (int seg=0; seg<7; seg++) {
+                if (digits[disp_digits[d]][seg] == 1) {
+                    display[seg] = digits[disp_digits[d]][seg];
+                    display[seg] = 0;
+                }
+            }
+            if (d == dpi) {
+                dp = 1;
+                dp = 0;
+            }
+        }
+    }
+}
\ No newline at end of file