Demirović Tarik Čilić Zlatan

Dependencies:   mbed

Committer:
tim003
Date:
Mon Apr 07 07:07:25 2014 +0000
Revision:
0:6ce2c215d249
LV6_PAI_Grupa1_Tim003_Zadatak1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim003 0:6ce2c215d249 1 #include "mbed.h"
tim003 0:6ce2c215d249 2
tim003 0:6ce2c215d249 3 int cifre[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x078,0x0,0x10};
tim003 0:6ce2c215d249 4
tim003 0:6ce2c215d249 5 BusOut enable(dp23,dp24,dp25);
tim003 0:6ce2c215d249 6 BusOut display(dp26, dp27, dp5, dp6, dp28, dp4, dp18);
tim003 0:6ce2c215d249 7 DigitalOut point(dp17);
tim003 0:6ce2c215d249 8
tim003 0:6ce2c215d249 9 InterruptIn t1(dp1);
tim003 0:6ce2c215d249 10 InterruptIn t2(dp2);
tim003 0:6ce2c215d249 11 int cifra1(cifre[0]);
tim003 0:6ce2c215d249 12 int cifra2(cifre[0]);
tim003 0:6ce2c215d249 13 int cifra3(cifre[0]);
tim003 0:6ce2c215d249 14 int izborCifre(3);
tim003 0:6ce2c215d249 15 Timer timer1;
tim003 0:6ce2c215d249 16 Ticker ticker1;
tim003 0:6ce2c215d249 17 Ticker ticker2;
tim003 0:6ce2c215d249 18 Timer debounce;
tim003 0:6ce2c215d249 19 Timer debounce1;
tim003 0:6ce2c215d249 20
tim003 0:6ce2c215d249 21 bool on;
tim003 0:6ce2c215d249 22
tim003 0:6ce2c215d249 23 void inkrementiraj()
tim003 0:6ce2c215d249 24 {
tim003 0:6ce2c215d249 25 float broj = timer1.read();
tim003 0:6ce2c215d249 26
tim003 0:6ce2c215d249 27 cifra3 = int((broj - int(broj))*10);
tim003 0:6ce2c215d249 28 cifra2 = int(broj) % 10;
tim003 0:6ce2c215d249 29 cifra1 = int(broj) / 10;
tim003 0:6ce2c215d249 30 }
tim003 0:6ce2c215d249 31
tim003 0:6ce2c215d249 32 void osvjezi()
tim003 0:6ce2c215d249 33 {
tim003 0:6ce2c215d249 34 if(izborCifre == 3)
tim003 0:6ce2c215d249 35 {
tim003 0:6ce2c215d249 36 enable = izborCifre;
tim003 0:6ce2c215d249 37 display = cifre[cifra3];
tim003 0:6ce2c215d249 38 izborCifre = 5;
tim003 0:6ce2c215d249 39 }
tim003 0:6ce2c215d249 40 else if(izborCifre == 5)
tim003 0:6ce2c215d249 41 {
tim003 0:6ce2c215d249 42 enable = izborCifre;
tim003 0:6ce2c215d249 43 point = 0;
tim003 0:6ce2c215d249 44 display = cifre[cifra2];
tim003 0:6ce2c215d249 45 izborCifre = 6;
tim003 0:6ce2c215d249 46 }
tim003 0:6ce2c215d249 47 else
tim003 0:6ce2c215d249 48 {
tim003 0:6ce2c215d249 49 point = 1;
tim003 0:6ce2c215d249 50 enable = izborCifre;
tim003 0:6ce2c215d249 51 display = cifre[cifra1];
tim003 0:6ce2c215d249 52 izborCifre = 3;
tim003 0:6ce2c215d249 53 }
tim003 0:6ce2c215d249 54 }
tim003 0:6ce2c215d249 55
tim003 0:6ce2c215d249 56 void startstop()
tim003 0:6ce2c215d249 57 {
tim003 0:6ce2c215d249 58 if(debounce.read_ms() > 400)
tim003 0:6ce2c215d249 59 {
tim003 0:6ce2c215d249 60 if(on) timer1.stop();
tim003 0:6ce2c215d249 61 else timer1.start();
tim003 0:6ce2c215d249 62 on = !on;
tim003 0:6ce2c215d249 63 debounce.reset();
tim003 0:6ce2c215d249 64 }
tim003 0:6ce2c215d249 65 }
tim003 0:6ce2c215d249 66
tim003 0:6ce2c215d249 67 void resetfunc()
tim003 0:6ce2c215d249 68 {
tim003 0:6ce2c215d249 69 if(debounce1.read_ms() > 400)
tim003 0:6ce2c215d249 70 {
tim003 0:6ce2c215d249 71 timer1.reset();
tim003 0:6ce2c215d249 72 timer1.stop();
tim003 0:6ce2c215d249 73 debounce1.reset();
tim003 0:6ce2c215d249 74 }
tim003 0:6ce2c215d249 75 }
tim003 0:6ce2c215d249 76
tim003 0:6ce2c215d249 77 int main() {
tim003 0:6ce2c215d249 78 enable = 0;
tim003 0:6ce2c215d249 79 display = 0x40;
tim003 0:6ce2c215d249 80 debounce.start();
tim003 0:6ce2c215d249 81 debounce1.start();
tim003 0:6ce2c215d249 82 ticker1.attach(&osvjezi, 0.005);
tim003 0:6ce2c215d249 83 ticker2.attach(&inkrementiraj, 0.1);
tim003 0:6ce2c215d249 84 timer1.start();
tim003 0:6ce2c215d249 85 on = true;
tim003 0:6ce2c215d249 86 t1.rise(&startstop);
tim003 0:6ce2c215d249 87 t2.rise(&resetfunc);
tim003 0:6ce2c215d249 88 while(1) {
tim003 0:6ce2c215d249 89 }
tim003 0:6ce2c215d249 90 }