Pejović Luka Ćustović Haris

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "time.h"
00003 
00004 DigitalOut cifre[3] = {dp23, dp24, dp25};
00005 
00006 BusOut disp(dp4, dp2, dp1, dp28, dp6, dp5, dp27, dp26);
00007 
00008 int _7sd(char znak, bool tocka = false)
00009 {
00010     //za sljedeci raspored: a b c d e f g dp
00011     //a to su dp26 dp27 dp5 dp6 dp28 dp1 dp2 dp4
00012     int t = !tocka;
00013     switch(znak)
00014     {
00015         case '0':
00016             return 0x02 | t;
00017         case '1':
00018             return 0x9e | t;
00019         case '2':
00020             return 0x24 | t;
00021         case '3':
00022             return 0x0c | t;
00023         case '4':
00024             return 0x98 | t;
00025         case '5':
00026             return 0x48 | t;
00027         case '6':
00028             return 0x40 | t;
00029         case '7':
00030             return 0x1a | t;
00031         case '8':
00032             return 0x00 | t;
00033         case '9':
00034             return 0x08 | t;
00035         case 'a': case 'A':
00036             return 0x10 | t;
00037         case 'b': case 'B':
00038             return 0xc0 | t;
00039         case 'c': case 'C':
00040             return 0x62 | t;
00041         case 'd': case 'D':
00042             return 0x84 | t;
00043         case 'e': case 'E':
00044             return 0x60 | t;
00045         case 'f': case 'F':
00046             return 0x70 | t;
00047         case '*':
00048             return 0x90 | t;
00049         case '#':
00050             return 0x6c | t;
00051     }
00052 }
00053 
00054 class Stoperica
00055 {
00056     clock_t poc, kraj;
00057     bool running;
00058 public:
00059     Stoperica(){running = true; poc = clock(); }
00060     
00061     void start(){ running = true;poc = clock();}
00062     void stop(){ kraj = clock();}
00063     bool Running(){return running;}
00064     float ocitaj(){stop(); return (kraj - poc)*1000./CLOCKS_PER_SEC;}
00065 private:
00066 
00067 };
00068 
00069 void ispisi(float vrijeme){
00070     int broj = vrijeme;
00071     int c[3] = { (broj%1000)/100, (broj%100)/10, broj%10 };
00072     
00073     for(int i = 0; i < 3; i++){
00074         cifre[i] = 0;
00075         disp = _7sd(c[i] + '0', i==1);
00076         wait(0.0025);  
00077         cifre[i] = 1;
00078          
00079     }
00080 }
00081 int main() {
00082     wait(2);
00083     clock_t poc, tren;
00084     poc = clock();
00085     
00086     tren = clock();
00087     while(1){
00088         if((tren - poc)*10/CLOCKS_PER_SEC < 123) tren = clock();
00089         
00090         ispisi((tren - poc)*10/CLOCKS_PER_SEC);
00091         wait(0.02);
00092     }
00093     
00094 }