Babic Mirhat Odobasic Faris

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002  
00003 using namespace std;
00004  
00005 BusOut segments(dp26, dp27, dp5, dp6, dp28, dp4, dp18);
00006 BusOut digit(dp23, dp24, dp25);
00007 DigitalOut point(dp17);
00008 
00009 InterruptIn taster1(dp1);
00010 InterruptIn taster2(dp2);
00011  
00012 Timer debounse;
00013 Timer count;
00014 Timer lazni;
00015 Ticker osvjezi;
00016 
00017 bool pom = false;
00018 
00019 int codes[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x078,0x0,0x10};
00020  
00021  
00022  
00023 void display() {
00024     float time = count.read_ms() / 1000.;
00025     
00026     int numbers[3] = { (int)(time / 10.) % 10, (int)(time) % 10, 
00027                             (int)(time * 10.) % 10 };
00028  
00029     segments = codes[ numbers[2]];
00030     digit = 3;
00031     
00032     
00033     lazni.reset();
00034     lazni.start();
00035     while(lazni.read_ms() < 2);
00036     
00037     
00038     digit = 7;
00039         
00040         segments = codes[ numbers[1]];
00041     digit = 5;
00042     
00043     point = 0;
00044     lazni.reset();
00045     lazni.start();
00046     while(lazni.read_ms() < 2);
00047     
00048     digit = 7;    
00049  
00050  segments = codes[ numbers[0]];
00051     digit = 6;
00052     
00053     point = 1;
00054         
00055     lazni.reset();
00056     lazni.start();
00057     while(lazni.read_ms() < 2);
00058     
00059     digit = 7;
00060         
00061  
00062     segments = 7;
00063     point = 1;
00064 }
00065  
00066 void pocetak()
00067 {
00068   if(debounse.read_ms() >= 200)
00069   {
00070       if(!pom)
00071       { count.start();
00072         pom = true;
00073         }
00074       else 
00075       {count.stop();
00076       pom = false;
00077       }
00078         debounse.reset();
00079   }
00080 } 
00081 
00082  
00083 void reset()
00084 {
00085     count.reset();    
00086     count.stop();
00087     pom = false;
00088 }
00089 
00090 int main() {
00091     digit=0;
00092     segments=0;
00093     wait(1);
00094     digit=7;
00095     wait(1);
00096     digit=0;
00097     wait(1);
00098     
00099     debounse.start();
00100     taster1.rise(&pocetak);
00101     
00102     taster2.rise(&reset);
00103     
00104     osvjezi.attach_us(&display, 10000);
00105     
00106     while(true) {
00107         
00108     }
00109     
00110     
00111 }
00112