tim010 tim010
/
LV3-Grupa4-Tim010-Zadatak2_1
haris Čustović luka pejović
Fork of LV3_Grupa4_Tim010_zadatak2 by
main.cpp@1:558d5b72583d, 2014-03-17 (annotated)
- Committer:
- tim010
- Date:
- Mon Mar 17 19:07:30 2014 +0000
- Revision:
- 1:558d5b72583d
- Parent:
- 0:774a1e3bb758
LV3-PAI-Grupa4-tim010;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tim010 | 0:774a1e3bb758 | 1 | #include "mbed.h" |
tim010 | 0:774a1e3bb758 | 2 | |
tim010 | 0:774a1e3bb758 | 3 | |
tim010 | 0:774a1e3bb758 | 4 | |
tim010 | 0:774a1e3bb758 | 5 | DigitalOut red1(dp16), red2(dp15), red3(dp17), red4(dp18); |
tim010 | 0:774a1e3bb758 | 6 | DigitalIn kol1(dp9), kol2(dp10), kol3(dp11), kol4(dp13); |
tim010 | 0:774a1e3bb758 | 7 | |
tim010 | 0:774a1e3bb758 | 8 | DigitalOut cifre[3] = {dp23, dp24, dp25}; |
tim010 | 0:774a1e3bb758 | 9 | BusOut disp(dp4, dp2, dp1, dp28, dp6, dp5, dp27, dp26); |
tim010 | 0:774a1e3bb758 | 10 | |
tim010 | 0:774a1e3bb758 | 11 | |
tim010 | 0:774a1e3bb758 | 12 | int _7sd(char znak, bool tocka = false) |
tim010 | 0:774a1e3bb758 | 13 | { |
tim010 | 0:774a1e3bb758 | 14 | //za sljedeci raspored: a b c d e f g dp |
tim010 | 0:774a1e3bb758 | 15 | //a to su dp26 dp27 dp5 dp6 dp28 dp1 dp2 dp4 |
tim010 | 0:774a1e3bb758 | 16 | int t = !tocka; |
tim010 | 0:774a1e3bb758 | 17 | switch(znak) |
tim010 | 0:774a1e3bb758 | 18 | { |
tim010 | 0:774a1e3bb758 | 19 | case 'N': |
tim010 | 0:774a1e3bb758 | 20 | return 0xfe | t; |
tim010 | 0:774a1e3bb758 | 21 | case '0': |
tim010 | 0:774a1e3bb758 | 22 | return 0x02 | t; |
tim010 | 0:774a1e3bb758 | 23 | case '1': |
tim010 | 0:774a1e3bb758 | 24 | return 0x9e | t; |
tim010 | 0:774a1e3bb758 | 25 | case '2': |
tim010 | 0:774a1e3bb758 | 26 | return 0x24 | t; |
tim010 | 0:774a1e3bb758 | 27 | case '3': |
tim010 | 0:774a1e3bb758 | 28 | return 0x0c | t; |
tim010 | 0:774a1e3bb758 | 29 | case '4': |
tim010 | 0:774a1e3bb758 | 30 | return 0x98 | t; |
tim010 | 0:774a1e3bb758 | 31 | case '5': |
tim010 | 0:774a1e3bb758 | 32 | return 0x48 | t; |
tim010 | 0:774a1e3bb758 | 33 | case '6': |
tim010 | 0:774a1e3bb758 | 34 | return 0x40 | t; |
tim010 | 0:774a1e3bb758 | 35 | case '7': |
tim010 | 0:774a1e3bb758 | 36 | return 0x1a | t; |
tim010 | 0:774a1e3bb758 | 37 | case '8': |
tim010 | 0:774a1e3bb758 | 38 | return 0x00 | t; |
tim010 | 0:774a1e3bb758 | 39 | case '9': |
tim010 | 0:774a1e3bb758 | 40 | return 0x08 | t; |
tim010 | 0:774a1e3bb758 | 41 | case 'a': case 'A': |
tim010 | 0:774a1e3bb758 | 42 | return 0x10 | t; |
tim010 | 0:774a1e3bb758 | 43 | case 'b': case 'B': |
tim010 | 0:774a1e3bb758 | 44 | return 0xc0 | t; |
tim010 | 0:774a1e3bb758 | 45 | case 'c': case 'C': |
tim010 | 0:774a1e3bb758 | 46 | return 0x62 | t; |
tim010 | 0:774a1e3bb758 | 47 | case 'd': case 'D': |
tim010 | 0:774a1e3bb758 | 48 | return 0x84 | t; |
tim010 | 0:774a1e3bb758 | 49 | case 'e': case 'E': |
tim010 | 0:774a1e3bb758 | 50 | return 0x60 | t; |
tim010 | 0:774a1e3bb758 | 51 | case 'f': case 'F': |
tim010 | 0:774a1e3bb758 | 52 | return 0x70 | t; |
tim010 | 0:774a1e3bb758 | 53 | case '*': |
tim010 | 0:774a1e3bb758 | 54 | return 0x90 | t; |
tim010 | 0:774a1e3bb758 | 55 | case '#': |
tim010 | 0:774a1e3bb758 | 56 | return 0x6c | t; |
tim010 | 0:774a1e3bb758 | 57 | } |
tim010 | 0:774a1e3bb758 | 58 | } |
tim010 | 0:774a1e3bb758 | 59 | |
tim010 | 0:774a1e3bb758 | 60 | char ocitajtast() |
tim010 | 0:774a1e3bb758 | 61 | { |
tim010 | 0:774a1e3bb758 | 62 | red1 = 0; red2 = 0; red3 = 0; red4 = 0; |
tim010 | 0:774a1e3bb758 | 63 | |
tim010 | 0:774a1e3bb758 | 64 | |
tim010 | 0:774a1e3bb758 | 65 | red1 = 1; |
tim010 | 0:774a1e3bb758 | 66 | if( kol1 == 1) return '1'; |
tim010 | 0:774a1e3bb758 | 67 | |
tim010 | 0:774a1e3bb758 | 68 | if( kol2 == 1) return '2'; |
tim010 | 0:774a1e3bb758 | 69 | |
tim010 | 0:774a1e3bb758 | 70 | if( kol3 == 1) return '3'; |
tim010 | 0:774a1e3bb758 | 71 | |
tim010 | 0:774a1e3bb758 | 72 | if(kol4 == 1) return 'A'; |
tim010 | 0:774a1e3bb758 | 73 | |
tim010 | 0:774a1e3bb758 | 74 | red1 = 0; |
tim010 | 0:774a1e3bb758 | 75 | |
tim010 | 0:774a1e3bb758 | 76 | red2 = 1; |
tim010 | 0:774a1e3bb758 | 77 | if( kol1 == 1) return '4'; |
tim010 | 0:774a1e3bb758 | 78 | if( kol2 == 1) return '5'; |
tim010 | 0:774a1e3bb758 | 79 | if( kol3 == 1) return '6'; |
tim010 | 0:774a1e3bb758 | 80 | if(kol4 == 1) return 'B'; |
tim010 | 0:774a1e3bb758 | 81 | red2 = 0; |
tim010 | 0:774a1e3bb758 | 82 | |
tim010 | 0:774a1e3bb758 | 83 | red3 = 1; |
tim010 | 0:774a1e3bb758 | 84 | if( kol1 == 1) return '7'; |
tim010 | 0:774a1e3bb758 | 85 | if( kol2 == 1) return '8'; |
tim010 | 0:774a1e3bb758 | 86 | if( kol3 == 1) return '9'; |
tim010 | 0:774a1e3bb758 | 87 | if(kol4 == 1) return 'C'; |
tim010 | 0:774a1e3bb758 | 88 | red3 = 0; |
tim010 | 0:774a1e3bb758 | 89 | |
tim010 | 0:774a1e3bb758 | 90 | red4 = 1; |
tim010 | 0:774a1e3bb758 | 91 | if( kol1 == 1) return '*'; |
tim010 | 0:774a1e3bb758 | 92 | if( kol2 == 1) return '0'; |
tim010 | 0:774a1e3bb758 | 93 | if( kol3 == 1) return '#'; |
tim010 | 0:774a1e3bb758 | 94 | if(kol4 == 1) return 'D'; |
tim010 | 0:774a1e3bb758 | 95 | red4 = 0; |
tim010 | 0:774a1e3bb758 | 96 | |
tim010 | 0:774a1e3bb758 | 97 | return 'N'; |
tim010 | 0:774a1e3bb758 | 98 | } |
tim010 | 0:774a1e3bb758 | 99 | |
tim010 | 0:774a1e3bb758 | 100 | void ispisi(char znakovi[] ){ |
tim010 | 0:774a1e3bb758 | 101 | |
tim010 | 0:774a1e3bb758 | 102 | for(int i = 0; i < 3; i++){ |
tim010 | 0:774a1e3bb758 | 103 | cifre[i] = 0; |
tim010 | 0:774a1e3bb758 | 104 | disp = _7sd(znakovi[i]); |
tim010 | 0:774a1e3bb758 | 105 | wait(0.0025); |
tim010 | 0:774a1e3bb758 | 106 | cifre[i] = 1; |
tim010 | 0:774a1e3bb758 | 107 | |
tim010 | 0:774a1e3bb758 | 108 | } |
tim010 | 0:774a1e3bb758 | 109 | } |
tim010 | 0:774a1e3bb758 | 110 | |
tim010 | 0:774a1e3bb758 | 111 | char niz[3]; |
tim010 | 0:774a1e3bb758 | 112 | |
tim010 | 0:774a1e3bb758 | 113 | void dodaj(char c){ |
tim010 | 0:774a1e3bb758 | 114 | if(c == 'C'){ |
tim010 | 0:774a1e3bb758 | 115 | for(int i = 0; i < 3; i++) |
tim010 | 0:774a1e3bb758 | 116 | niz[i] = 'N'; |
tim010 | 0:774a1e3bb758 | 117 | } else { |
tim010 | 0:774a1e3bb758 | 118 | niz[0] = niz[1]; |
tim010 | 0:774a1e3bb758 | 119 | niz[1] = niz[2]; |
tim010 | 0:774a1e3bb758 | 120 | niz[2] = c; |
tim010 | 1:558d5b72583d | 121 | |
tim010 | 1:558d5b72583d | 122 | if(niz[0] == '0') { |
tim010 | 1:558d5b72583d | 123 | niz[0] = 'N'; |
tim010 | 1:558d5b72583d | 124 | if(niz[1] == '0') |
tim010 | 1:558d5b72583d | 125 | niz[1] = 'N'; |
tim010 | 1:558d5b72583d | 126 | } |
tim010 | 1:558d5b72583d | 127 | |
tim010 | 1:558d5b72583d | 128 | if(niz[0] == 'N' && niz[1] == '0') |
tim010 | 1:558d5b72583d | 129 | niz[1] = 'N'; |
tim010 | 0:774a1e3bb758 | 130 | } |
tim010 | 0:774a1e3bb758 | 131 | } |
tim010 | 0:774a1e3bb758 | 132 | |
tim010 | 0:774a1e3bb758 | 133 | int main() { |
tim010 | 1:558d5b72583d | 134 | char c, c1; |
tim010 | 1:558d5b72583d | 135 | int counter = 0; |
tim010 | 0:774a1e3bb758 | 136 | |
tim010 | 1:558d5b72583d | 137 | niz[0] = 'N'; |
tim010 | 1:558d5b72583d | 138 | niz[1] = 'N'; |
tim010 | 1:558d5b72583d | 139 | niz[2] = 'N'; |
tim010 | 0:774a1e3bb758 | 140 | |
tim010 | 1:558d5b72583d | 141 | wait(1); |
tim010 | 1:558d5b72583d | 142 | niz[2] = '0'; |
tim010 | 1:558d5b72583d | 143 | |
tim010 | 0:774a1e3bb758 | 144 | while(1){ |
tim010 | 1:558d5b72583d | 145 | for(counter = 0; ;counter++) |
tim010 | 0:774a1e3bb758 | 146 | { |
tim010 | 0:774a1e3bb758 | 147 | ispisi(niz); |
tim010 | 0:774a1e3bb758 | 148 | c = ocitajtast(); |
tim010 | 0:774a1e3bb758 | 149 | if( c == 'N'){ |
tim010 | 0:774a1e3bb758 | 150 | break; |
tim010 | 0:774a1e3bb758 | 151 | } |
tim010 | 1:558d5b72583d | 152 | c1 = c; |
tim010 | 1:558d5b72583d | 153 | //wait(0.12); |
tim010 | 1:558d5b72583d | 154 | //dodaj(c); |
tim010 | 0:774a1e3bb758 | 155 | |
tim010 | 0:774a1e3bb758 | 156 | |
tim010 | 0:774a1e3bb758 | 157 | } |
tim010 | 1:558d5b72583d | 158 | if (counter > 8) |
tim010 | 1:558d5b72583d | 159 | dodaj(c1); |
tim010 | 0:774a1e3bb758 | 160 | |
tim010 | 0:774a1e3bb758 | 161 | |
tim010 | 0:774a1e3bb758 | 162 | } |
tim010 | 0:774a1e3bb758 | 163 | |
tim010 | 0:774a1e3bb758 | 164 | } |