Admira Husić
/
LV6_Grupa7_Tim010_Zadatak1
LV6_Grupa7_Tim010_Zadatak1_EnsarSarajcic_AdmiraHusic
Diff: main.cpp
- Revision:
- 0:fc01ae272930
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Apr 09 16:54:33 2015 +0000 @@ -0,0 +1,77 @@ +#include "mbed.h" +#define dp23 P0_0 + +int izlazi[]= {64,121,36,48,25,18,2,120,0,16}; +BusOut ledovi(dp26, dp27, dp5, dp6, dp28, dp4, dp18); +BusOut ukljuci(dp25,dp24,dp23); +int ukljuciCifre[3]={3,5,6}; +DigitalOut tacka = dp17; + +InterruptIn startDugme(dp1), resetDugme(dp2); //tasteri +int d2 = 0, d3 = 0, d4 = 0;// Vrijednosti na pojedinim displayjima + +float ocitajVrijeme(0); +Ticker tikerIspis; +Timer timer, timer1, timer2; +bool pokrenuta(false); +int indeks=0; +void ispisNaEkran()// Pisanje cifara na display +{ + ukljuci=7; + ocitajVrijeme = timer.read();// ocitavamo ciffre u sekundama + // Cupamo pojedine cifre iz value + d4 = int(ocitajVrijeme / 10); // dobijamo najvisu cifru + d3 = int(ocitajVrijeme) % 10; // dobijamo srednju cifru + d2 = int(ocitajVrijeme* 10) % 10; // dobijamo desetinjke + + int brojevi[3]={d4,d3,d2}; +ledovi=izlazi[brojevi[indeks]]; + ukljuci=ukljuciCifre[indeks]; + +if(indeks==1) tacka=0; else tacka=1; +indeks=(indeks+1)%3; + + + + + +} + +void startstop() +{ + if(timer1.read_ms() > 200) + { + if(pokrenuta) timer.stop(); + else timer.start(); + pokrenuta = !pokrenuta; + + } + timer1.reset(); +} + +void resetuj() +{ + if(timer2.read_ms() > 200) + { + pokrenuta = false; + timer.reset(); + timer.stop(); + } + timer2.reset(); + +} + +int main() +{ + + timer.reset(); + timer1.start(); + timer2.start(); + startDugme.rise(&startstop); + resetDugme.rise(&resetuj); + tikerIspis.attach(&ispisNaEkran, 0.001); + while(1) + {} + +} +