tim003 tim003
/
LV6-Grupa1-Tim003-Zadatak1
Demirović Tarik Čilić Zlatan
main.cpp@0:6ce2c215d249, 2014-04-07 (annotated)
- 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?
User | Revision | Line number | New 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 | } |