Amer Ratković Amela Špica

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 int niz_brojeva[10]={1,79,18,6,76,36,32,15,0,4};
00004 DigitalOut redni_br_cifre[3]={dp23,dp24,dp25};
00005 DigitalOut dec_zarez(dp17);
00006 
00007 InterruptIn onoff(dp1), restart(dp2);
00008 
00009 BusOut cifra(dp18, dp4, dp28, dp6, dp5, dp27, dp26);
00010 Ticker idemo;
00011 int cifra123=0;
00012 Timer timer_vrijeme;
00013 Timer timer_on_off;
00014 Timer timer_reset;
00015 
00016 float vrijeme(0);
00017 bool provjera(true);
00018 
00019 
00020 void ispis()
00021 {
00022     vrijeme = timer_vrijeme.read();
00023     int prva_cifra=int(vrijeme) /10;
00024     int druga_cifra=(int)(vrijeme) %10;
00025     int treca_cifra=(int)(vrijeme*10) %10;
00026     
00027     switch(cifra123)
00028     {
00029         case 0:
00030         cifra=niz_brojeva[prva_cifra];
00031         redni_br_cifre[0]=0;
00032         redni_br_cifre[1]=1;
00033         redni_br_cifre[2]=1;
00034         break;
00035         case 1:
00036         cifra=niz_brojeva[druga_cifra];
00037         redni_br_cifre[0]=1;
00038         redni_br_cifre[1]=0;
00039         redni_br_cifre[2]=1;
00040         break;
00041         case 2:
00042         cifra=niz_brojeva[treca_cifra];
00043         redni_br_cifre[0]=1;
00044         redni_br_cifre[1]=1;
00045         redni_br_cifre[2]=0;
00046         break;
00047     }
00048     cifra123++;
00049     if(cifra123==3)
00050     cifra123=0;
00051 
00052 }
00053 
00054 void pomocna(int cif, int tacka, int br)
00055 {
00056      
00057      dec_zarez=tacka;
00058      cifra=niz_brojeva[cif];
00059      redni_br_cifre[br]=0;
00060      dec_zarez=!tacka;
00061 }
00062 
00063 void on_off()
00064 {
00065     if(timer_on_off.read_ms() > 200)
00066          {
00067               if(provjera==true) timer_vrijeme.stop();
00068               else timer_vrijeme.start();
00069               provjera = !provjera;
00070               
00071         }   
00072          timer_on_off.reset();
00073 
00074 }
00075 
00076 
00077 void resett()
00078 {
00079     if(timer_reset.read_ms() > 200)
00080          {  
00081          
00082            provjera = false;
00083             timer_vrijeme.reset();
00084             timer_vrijeme.stop();
00085          }  
00086          timer_reset.reset(); 
00087 }
00088 
00089 
00090 
00091 
00092 int main()
00093 {
00094    
00095     timer_vrijeme.reset();
00096     timer_vrijeme.start();
00097     timer_on_off.start();
00098     timer_reset.start();
00099     onoff.rise(&on_off);
00100     restart.rise(&resett);
00101     idemo.attach(&ispis, 0.001);
00102     
00103     while(1)
00104     {}
00105     
00106 }