haris Čustović luka pejović

Dependencies:   mbed

Fork of LV3_Grupa4_Tim010_zadatak2 by tim010 tim010

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?

UserRevisionLine numberNew 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 }