Brendon Ky / Mbed 2 deprecated cs_335_speedometer

Dependencies:   mbed mbed-rtos

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers displayDriver.cpp Source File

displayDriver.cpp

00001 # include "mbed.h"
00002 
00003 DigitalOut a(p24);
00004 DigitalOut b(p17);
00005 DigitalOut c(p16);
00006 DigitalOut d(p14);
00007 DigitalOut e(p15);
00008 DigitalOut f(p25);
00009 DigitalOut g(p22);
00010 DigitalOut dp(p23);
00011 
00012 DigitalOut cat1(p21);
00013 DigitalOut cat2(p20);
00014 
00015 DigitalOut cat[] = {cat1, cat2};
00016 DigitalOut display[] = {a, b, c, d, e, f, g};
00017 
00018 const int digits[10][7] = {
00019         {1, 1, 1, 1, 1, 1, 0},
00020         {0, 1, 1, 0, 0, 0, 0},
00021         {1, 1, 0, 1, 1, 0, 1},
00022         {1, 1, 1, 1, 0, 0, 1},
00023         {0, 1, 1, 0, 0, 1, 1},
00024         {1, 0, 1, 1, 0, 1, 1},
00025         {1, 0, 1, 1, 1, 1, 1},
00026         {1, 1, 1, 0, 0, 0, 0},
00027         {1, 1, 1, 1, 1, 1, 1},
00028         {1, 1, 1, 1, 0, 1, 1}
00029 };
00030 
00031 void display_num(float num) {
00032     int dpi = 1;
00033     int numi = (int)(num);
00034     
00035     if (((int)num)/10 == 0) {
00036         dpi = 0;
00037         numi = (int)(num*10);
00038     }
00039     
00040     int disp_digits[] = {numi/10, numi%10};
00041     
00042     for (int d=0; d<2; d++) {
00043         cat[d] = 1;
00044         cat[(d+1)%2] = 0;
00045         for (int seg=0; seg<7; seg++) {
00046             display[seg] = digits[disp_digits[d]][seg];
00047         }
00048         for (int seg=0; seg<7; seg++) {
00049             display[seg] = 0;
00050         }
00051         if (d == dpi) {
00052             dp = 1;
00053             dp = 0;
00054         }
00055     }    
00056 }