Brendon Ky / Mbed 2 deprecated cs_335_speedometer

Dependencies:   mbed mbed-rtos

Committer:
manavkoolz
Date:
Tue Dec 01 09:55:54 2020 +0000
Revision:
17:082d51603f20
Child:
18:ef0569bea7e9
Adds multiplexing display code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
manavkoolz 17:082d51603f20 1 DigitalOut a(p19);
manavkoolz 17:082d51603f20 2 DigitalOut b(p10);
manavkoolz 17:082d51603f20 3 DigitalOut c(p9);
manavkoolz 17:082d51603f20 4 DigitalOut d(p7);
manavkoolz 17:082d51603f20 5 DigitalOut e(p8);
manavkoolz 17:082d51603f20 6 DigitalOut f(p20);
manavkoolz 17:082d51603f20 7 DigitalOut g(p17);
manavkoolz 17:082d51603f20 8 DigitalOut dp(p18);
manavkoolz 17:082d51603f20 9
manavkoolz 17:082d51603f20 10 DigitalOut cat[] = {cat1, cat2};
manavkoolz 17:082d51603f20 11 DigitalOut display[] = {a, b, c, d, e, f, g};
manavkoolz 17:082d51603f20 12
manavkoolz 17:082d51603f20 13 const int digits[10][7] = {
manavkoolz 17:082d51603f20 14 {1, 1, 1, 1, 1, 1, 0},
manavkoolz 17:082d51603f20 15 {0, 1, 1, 0, 0, 0, 0},
manavkoolz 17:082d51603f20 16 {1, 1, 0, 1, 1, 0, 1},
manavkoolz 17:082d51603f20 17 {1, 1, 1, 1, 0, 0, 1},
manavkoolz 17:082d51603f20 18 {0, 1, 1, 0, 0, 1, 1},
manavkoolz 17:082d51603f20 19 {1, 0, 1, 1, 0, 1, 1},
manavkoolz 17:082d51603f20 20 {1, 0, 1, 1, 1, 1, 1},
manavkoolz 17:082d51603f20 21 {1, 1, 1, 0, 0, 0, 0},
manavkoolz 17:082d51603f20 22 {1, 1, 1, 1, 1, 1, 1},
manavkoolz 17:082d51603f20 23 {1, 1, 1, 1, 0, 1, 1}
manavkoolz 17:082d51603f20 24 };
manavkoolz 17:082d51603f20 25
manavkoolz 17:082d51603f20 26 void display_num(float num) {
manavkoolz 17:082d51603f20 27 int dpi = 1;
manavkoolz 17:082d51603f20 28 int numi = (int)(num);
manavkoolz 17:082d51603f20 29
manavkoolz 17:082d51603f20 30 if (((int)num)/10 == 0) {
manavkoolz 17:082d51603f20 31 dpi = 0;
manavkoolz 17:082d51603f20 32 numi = (int)(num*10);
manavkoolz 17:082d51603f20 33 }
manavkoolz 17:082d51603f20 34
manavkoolz 17:082d51603f20 35 int disp_digits[] = {numi/10, numi%10};
manavkoolz 17:082d51603f20 36
manavkoolz 17:082d51603f20 37 while (true) {
manavkoolz 17:082d51603f20 38 for (int d=0; d<2; d++) {
manavkoolz 17:082d51603f20 39 cat[d] = 1;
manavkoolz 17:082d51603f20 40 cat[(d+1)%2] = 0;
manavkoolz 17:082d51603f20 41 for (int seg=0; seg<7; seg++) {
manavkoolz 17:082d51603f20 42 if (digits[disp_digits[d]][seg] == 1) {
manavkoolz 17:082d51603f20 43 display[seg] = digits[disp_digits[d]][seg];
manavkoolz 17:082d51603f20 44 display[seg] = 0;
manavkoolz 17:082d51603f20 45 }
manavkoolz 17:082d51603f20 46 }
manavkoolz 17:082d51603f20 47 if (d == dpi) {
manavkoolz 17:082d51603f20 48 dp = 1;
manavkoolz 17:082d51603f20 49 dp = 0;
manavkoolz 17:082d51603f20 50 }
manavkoolz 17:082d51603f20 51 }
manavkoolz 17:082d51603f20 52 }
manavkoolz 17:082d51603f20 53 }