Merisa Golić Armin Nogo
Dependencies: N5110 eeprom mbed
main.cpp@0:ebc6a8996650, 2015-06-02 (annotated)
- Committer:
- pai2015arminnogo
- Date:
- Tue Jun 02 17:57:24 2015 +0000
- Revision:
- 0:ebc6a8996650
Zavrsni Projekat - PAI - Digitalni Sat
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pai2015arminnogo | 0:ebc6a8996650 | 1 | #include "mbed.h" |
pai2015arminnogo | 0:ebc6a8996650 | 2 | #include "N5110.h" |
pai2015arminnogo | 0:ebc6a8996650 | 3 | |
pai2015arminnogo | 0:ebc6a8996650 | 4 | #define dp23 P0_0 |
pai2015arminnogo | 0:ebc6a8996650 | 5 | |
pai2015arminnogo | 0:ebc6a8996650 | 6 | //kada posmatramo segment vodoravno |
pai2015arminnogo | 0:ebc6a8996650 | 7 | #define SIRINA 11 |
pai2015arminnogo | 0:ebc6a8996650 | 8 | #define VISINA 5 |
pai2015arminnogo | 0:ebc6a8996650 | 9 | |
pai2015arminnogo | 0:ebc6a8996650 | 10 | //ref. koordinata cifre je krajnji lijevi piksel gornjeg segmenta |
pai2015arminnogo | 0:ebc6a8996650 | 11 | //definisemo i za svaku cifru |
pai2015arminnogo | 0:ebc6a8996650 | 12 | #define xPrva 5 |
pai2015arminnogo | 0:ebc6a8996650 | 13 | #define xDruga 24 |
pai2015arminnogo | 0:ebc6a8996650 | 14 | #define xTreca 48 |
pai2015arminnogo | 0:ebc6a8996650 | 15 | #define xCetvrta 67 |
pai2015arminnogo | 0:ebc6a8996650 | 16 | #define yCifra 7 |
pai2015arminnogo | 0:ebc6a8996650 | 17 | |
pai2015arminnogo | 0:ebc6a8996650 | 18 | int xTrenutnaCifra = 67; |
pai2015arminnogo | 0:ebc6a8996650 | 19 | |
pai2015arminnogo | 0:ebc6a8996650 | 20 | //Nokia displej |
pai2015arminnogo | 0:ebc6a8996650 | 21 | N5110 display(dp4,dp26,dp23,dp25,dp2,dp6,dp18); //dp24(pwmout) s dp26 |
pai2015arminnogo | 0:ebc6a8996650 | 22 | |
pai2015arminnogo | 0:ebc6a8996650 | 23 | //Džojstik |
pai2015arminnogo | 0:ebc6a8996650 | 24 | AnalogIn VRx(dp11); |
pai2015arminnogo | 0:ebc6a8996650 | 25 | AnalogIn VRy(dp10); |
pai2015arminnogo | 0:ebc6a8996650 | 26 | |
pai2015arminnogo | 0:ebc6a8996650 | 27 | //digitalni izlaz za aktivaciju LED buffera |
pai2015arminnogo | 0:ebc6a8996650 | 28 | DigitalOut enable (dp14); |
pai2015arminnogo | 0:ebc6a8996650 | 29 | |
pai2015arminnogo | 0:ebc6a8996650 | 30 | InterruptIn taster1(dp1); |
pai2015arminnogo | 0:ebc6a8996650 | 31 | PwmOut buzz(dp24); //STAVITI NOVI PIN, UMJESTO DP1, novi oslobodjeni pin |
pai2015arminnogo | 0:ebc6a8996650 | 32 | Timer tVrijeme; //debounce kada je taster pritisnut |
pai2015arminnogo | 0:ebc6a8996650 | 33 | Timer modTimer; // pomaže da oderedimo mod rada |
pai2015arminnogo | 0:ebc6a8996650 | 34 | Timer tDzojstik; |
pai2015arminnogo | 0:ebc6a8996650 | 35 | bool tasterP = false; //da li je taster pritisnut, pomocu nje cemo manipulirati ulazom i izlazom iz nekog moda |
pai2015arminnogo | 0:ebc6a8996650 | 36 | bool vrijemeMod = false;//oznacavamo da li smo u nekom modu |
pai2015arminnogo | 0:ebc6a8996650 | 37 | bool alarmMod = false; |
pai2015arminnogo | 0:ebc6a8996650 | 38 | Ticker dvotacka; //prikaz dvotacke |
pai2015arminnogo | 0:ebc6a8996650 | 39 | Ticker talarm; //attachat ce se funkcija alarm, pozivati svaku sekundu u minuti u kojoj je aktivan alarm |
pai2015arminnogo | 0:ebc6a8996650 | 40 | bool alarmInverse = false; //varijabla pomocu koje prebacujemo sa normal na inverse mode displaya |
pai2015arminnogo | 0:ebc6a8996650 | 41 | bool dvoTacka = false; //varijabla pomocu koje ili ispisujemo ili brisemo dvotacku |
pai2015arminnogo | 0:ebc6a8996650 | 42 | static int prviBroj; //varijable u kojima se nalazi trenutno vrijeme |
pai2015arminnogo | 0:ebc6a8996650 | 43 | static int drugiBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 44 | static int treciBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 45 | static int cetvrtiBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 46 | static int prviAlarm; //varijable u kojima se nalazi vrijeme namjestenog alarma |
pai2015arminnogo | 0:ebc6a8996650 | 47 | static int drugiAlarm; |
pai2015arminnogo | 0:ebc6a8996650 | 48 | static int treciAlarm; |
pai2015arminnogo | 0:ebc6a8996650 | 49 | static int cetvrtiAlarm; |
pai2015arminnogo | 0:ebc6a8996650 | 50 | Ticker mjeri; //pomocu njega cemo mjeriti vrijeme |
pai2015arminnogo | 0:ebc6a8996650 | 51 | Ticker blinkanje; //omogućava da cifra blinka u alarm i vrijeme modu |
pai2015arminnogo | 0:ebc6a8996650 | 52 | bool blink = false; |
pai2015arminnogo | 0:ebc6a8996650 | 53 | |
pai2015arminnogo | 0:ebc6a8996650 | 54 | |
pai2015arminnogo | 0:ebc6a8996650 | 55 | //funkcije za iscrtavanje segmenata |
pai2015arminnogo | 0:ebc6a8996650 | 56 | void crtajLinijuDesno(int x, int y, int duzina) |
pai2015arminnogo | 0:ebc6a8996650 | 57 | { |
pai2015arminnogo | 0:ebc6a8996650 | 58 | for(int i = x; i <= x + duzina; i++) { |
pai2015arminnogo | 0:ebc6a8996650 | 59 | display.setPixel(i,y); |
pai2015arminnogo | 0:ebc6a8996650 | 60 | } |
pai2015arminnogo | 0:ebc6a8996650 | 61 | } |
pai2015arminnogo | 0:ebc6a8996650 | 62 | |
pai2015arminnogo | 0:ebc6a8996650 | 63 | void crtajLinijuDolje(int x, int y, int duzina) |
pai2015arminnogo | 0:ebc6a8996650 | 64 | { |
pai2015arminnogo | 0:ebc6a8996650 | 65 | for(int i = y; i <= y + duzina; i++) { |
pai2015arminnogo | 0:ebc6a8996650 | 66 | display.setPixel(x,i); |
pai2015arminnogo | 0:ebc6a8996650 | 67 | } |
pai2015arminnogo | 0:ebc6a8996650 | 68 | } |
pai2015arminnogo | 0:ebc6a8996650 | 69 | |
pai2015arminnogo | 0:ebc6a8996650 | 70 | void segmentVodoravno(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 71 | { |
pai2015arminnogo | 0:ebc6a8996650 | 72 | crtajLinijuDesno(x+2, y-2, SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 73 | crtajLinijuDesno(x+1, y-1, SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 74 | crtajLinijuDesno(x, y, SIRINA); |
pai2015arminnogo | 0:ebc6a8996650 | 75 | crtajLinijuDesno(x+1, y+1 ,SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 76 | crtajLinijuDesno(x+2, y+2 ,SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 77 | } |
pai2015arminnogo | 0:ebc6a8996650 | 78 | |
pai2015arminnogo | 0:ebc6a8996650 | 79 | void segmentUspravno(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 80 | { |
pai2015arminnogo | 0:ebc6a8996650 | 81 | crtajLinijuDolje(x-2, y+2, SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 82 | crtajLinijuDolje(x-1, y+1, SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 83 | crtajLinijuDolje(x, y, SIRINA); |
pai2015arminnogo | 0:ebc6a8996650 | 84 | crtajLinijuDolje(x+1, y+1 ,SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 85 | crtajLinijuDolje(x+2, y+2 ,SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 86 | } |
pai2015arminnogo | 0:ebc6a8996650 | 87 | |
pai2015arminnogo | 0:ebc6a8996650 | 88 | //funkcija za iscrtavanje dvotacke |
pai2015arminnogo | 0:ebc6a8996650 | 89 | void crtajDvotacku() |
pai2015arminnogo | 0:ebc6a8996650 | 90 | { |
pai2015arminnogo | 0:ebc6a8996650 | 91 | if(!dvoTacka) { |
pai2015arminnogo | 0:ebc6a8996650 | 92 | for(int i = 41; i < 43; i++) { |
pai2015arminnogo | 0:ebc6a8996650 | 93 | for(int j = 16; j < 25; j++) { |
pai2015arminnogo | 0:ebc6a8996650 | 94 | if(j < 18 || j > 22) |
pai2015arminnogo | 0:ebc6a8996650 | 95 | display.setPixel(i,j); |
pai2015arminnogo | 0:ebc6a8996650 | 96 | display.refresh(); |
pai2015arminnogo | 0:ebc6a8996650 | 97 | } |
pai2015arminnogo | 0:ebc6a8996650 | 98 | } |
pai2015arminnogo | 0:ebc6a8996650 | 99 | dvoTacka = true; |
pai2015arminnogo | 0:ebc6a8996650 | 100 | } else if(dvoTacka) { |
pai2015arminnogo | 0:ebc6a8996650 | 101 | for(int i = 41; i < 43; i++) { |
pai2015arminnogo | 0:ebc6a8996650 | 102 | for(int j = 16; j < 25; j++) { |
pai2015arminnogo | 0:ebc6a8996650 | 103 | if(j < 18 || j > 22) |
pai2015arminnogo | 0:ebc6a8996650 | 104 | display.clearPixel(i,j); |
pai2015arminnogo | 0:ebc6a8996650 | 105 | display.refresh(); |
pai2015arminnogo | 0:ebc6a8996650 | 106 | } |
pai2015arminnogo | 0:ebc6a8996650 | 107 | } |
pai2015arminnogo | 0:ebc6a8996650 | 108 | dvoTacka = false; |
pai2015arminnogo | 0:ebc6a8996650 | 109 | } |
pai2015arminnogo | 0:ebc6a8996650 | 110 | } |
pai2015arminnogo | 0:ebc6a8996650 | 111 | |
pai2015arminnogo | 0:ebc6a8996650 | 112 | //funkcije koje iscrtavaju određeni broj pomoću segmenata |
pai2015arminnogo | 0:ebc6a8996650 | 113 | void crtajNula(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 114 | { |
pai2015arminnogo | 0:ebc6a8996650 | 115 | segmentVodoravno(x,y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 116 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 117 | segmentUspravno(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 118 | segmentUspravno(x-1, y+14); //donji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 119 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 120 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 121 | } |
pai2015arminnogo | 0:ebc6a8996650 | 122 | |
pai2015arminnogo | 0:ebc6a8996650 | 123 | void crtajJedan(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 124 | { |
pai2015arminnogo | 0:ebc6a8996650 | 125 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 126 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 127 | } |
pai2015arminnogo | 0:ebc6a8996650 | 128 | |
pai2015arminnogo | 0:ebc6a8996650 | 129 | void crtajDva(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 130 | { |
pai2015arminnogo | 0:ebc6a8996650 | 131 | segmentVodoravno(x, y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 132 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 133 | segmentUspravno(x-1, y+14); //donji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 134 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 135 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 136 | } |
pai2015arminnogo | 0:ebc6a8996650 | 137 | |
pai2015arminnogo | 0:ebc6a8996650 | 138 | void crtajTri(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 139 | { |
pai2015arminnogo | 0:ebc6a8996650 | 140 | segmentVodoravno(x, y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 141 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 142 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 143 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 144 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 145 | } |
pai2015arminnogo | 0:ebc6a8996650 | 146 | |
pai2015arminnogo | 0:ebc6a8996650 | 147 | void crtajCetiri(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 148 | { |
pai2015arminnogo | 0:ebc6a8996650 | 149 | segmentUspravno(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 150 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 151 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 152 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 153 | } |
pai2015arminnogo | 0:ebc6a8996650 | 154 | |
pai2015arminnogo | 0:ebc6a8996650 | 155 | void crtajPet(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 156 | { |
pai2015arminnogo | 0:ebc6a8996650 | 157 | segmentVodoravno(x, y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 158 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 159 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 160 | segmentUspravno(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 161 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 162 | } |
pai2015arminnogo | 0:ebc6a8996650 | 163 | |
pai2015arminnogo | 0:ebc6a8996650 | 164 | void crtajSest(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 165 | { |
pai2015arminnogo | 0:ebc6a8996650 | 166 | segmentVodoravno(x, y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 167 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 168 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 169 | segmentUspravno(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 170 | segmentUspravno(x-1, y+14); //donji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 171 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 172 | } |
pai2015arminnogo | 0:ebc6a8996650 | 173 | |
pai2015arminnogo | 0:ebc6a8996650 | 174 | void crtajSedam(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 175 | { |
pai2015arminnogo | 0:ebc6a8996650 | 176 | segmentVodoravno(x, y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 177 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 178 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 179 | } |
pai2015arminnogo | 0:ebc6a8996650 | 180 | |
pai2015arminnogo | 0:ebc6a8996650 | 181 | void crtajOsam(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 182 | { |
pai2015arminnogo | 0:ebc6a8996650 | 183 | segmentVodoravno(x,y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 184 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 185 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 186 | segmentUspravno(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 187 | segmentUspravno(x-1, y+14); //donji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 188 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 189 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 190 | } |
pai2015arminnogo | 0:ebc6a8996650 | 191 | |
pai2015arminnogo | 0:ebc6a8996650 | 192 | void crtajDevet(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 193 | { |
pai2015arminnogo | 0:ebc6a8996650 | 194 | segmentVodoravno(x,y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 195 | segmentVodoravno(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 196 | segmentVodoravno(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 197 | segmentUspravno(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 198 | segmentUspravno(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 199 | segmentUspravno(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 200 | } |
pai2015arminnogo | 0:ebc6a8996650 | 201 | |
pai2015arminnogo | 0:ebc6a8996650 | 202 | //funkcije koje brisu broj na trenutnoj cifri |
pai2015arminnogo | 0:ebc6a8996650 | 203 | void brisiLinijuDesno(int x, int y, int duzina) |
pai2015arminnogo | 0:ebc6a8996650 | 204 | { |
pai2015arminnogo | 0:ebc6a8996650 | 205 | for(int i = x; i <= x + duzina; i++) { |
pai2015arminnogo | 0:ebc6a8996650 | 206 | display.clearPixel(i,y); |
pai2015arminnogo | 0:ebc6a8996650 | 207 | } |
pai2015arminnogo | 0:ebc6a8996650 | 208 | } |
pai2015arminnogo | 0:ebc6a8996650 | 209 | |
pai2015arminnogo | 0:ebc6a8996650 | 210 | void brisiLinijuDolje(int x, int y, int duzina) |
pai2015arminnogo | 0:ebc6a8996650 | 211 | { |
pai2015arminnogo | 0:ebc6a8996650 | 212 | for(int i = y; i <= y + duzina; i++) { |
pai2015arminnogo | 0:ebc6a8996650 | 213 | display.clearPixel(x,i); |
pai2015arminnogo | 0:ebc6a8996650 | 214 | } |
pai2015arminnogo | 0:ebc6a8996650 | 215 | } |
pai2015arminnogo | 0:ebc6a8996650 | 216 | |
pai2015arminnogo | 0:ebc6a8996650 | 217 | void segmentVodoravnoBrisi(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 218 | { |
pai2015arminnogo | 0:ebc6a8996650 | 219 | brisiLinijuDesno(x+2, y-2, SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 220 | brisiLinijuDesno(x+1, y-1, SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 221 | brisiLinijuDesno(x, y, SIRINA); |
pai2015arminnogo | 0:ebc6a8996650 | 222 | brisiLinijuDesno(x+1, y+1 ,SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 223 | brisiLinijuDesno(x+2, y+2 ,SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 224 | } |
pai2015arminnogo | 0:ebc6a8996650 | 225 | |
pai2015arminnogo | 0:ebc6a8996650 | 226 | void segmentUspravnoBrisi(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 227 | { |
pai2015arminnogo | 0:ebc6a8996650 | 228 | brisiLinijuDolje(x-2, y+2, SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 229 | brisiLinijuDolje(x-1, y+1, SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 230 | brisiLinijuDolje(x, y, SIRINA); |
pai2015arminnogo | 0:ebc6a8996650 | 231 | brisiLinijuDolje(x+1, y+1 ,SIRINA-2); |
pai2015arminnogo | 0:ebc6a8996650 | 232 | brisiLinijuDolje(x+2, y+2 ,SIRINA-4); |
pai2015arminnogo | 0:ebc6a8996650 | 233 | } |
pai2015arminnogo | 0:ebc6a8996650 | 234 | |
pai2015arminnogo | 0:ebc6a8996650 | 235 | void brisi(int x, int y) |
pai2015arminnogo | 0:ebc6a8996650 | 236 | { |
pai2015arminnogo | 0:ebc6a8996650 | 237 | segmentVodoravnoBrisi(x,y); //gornji |
pai2015arminnogo | 0:ebc6a8996650 | 238 | segmentVodoravnoBrisi(x, y+13); //srednji |
pai2015arminnogo | 0:ebc6a8996650 | 239 | segmentVodoravnoBrisi(x, y + 26); //donji |
pai2015arminnogo | 0:ebc6a8996650 | 240 | segmentUspravnoBrisi(x-1, y+1); //gornji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 241 | segmentUspravnoBrisi(x-1, y+14); //donji lijevi |
pai2015arminnogo | 0:ebc6a8996650 | 242 | segmentUspravnoBrisi(x+12, y+1); //gornji desni |
pai2015arminnogo | 0:ebc6a8996650 | 243 | segmentUspravnoBrisi(x+12, y+14); //donji desni |
pai2015arminnogo | 0:ebc6a8996650 | 244 | } |
pai2015arminnogo | 0:ebc6a8996650 | 245 | |
pai2015arminnogo | 0:ebc6a8996650 | 246 | void ispisiPom(int broj, int pozicija) |
pai2015arminnogo | 0:ebc6a8996650 | 247 | { |
pai2015arminnogo | 0:ebc6a8996650 | 248 | switch(broj) { |
pai2015arminnogo | 0:ebc6a8996650 | 249 | case 0: |
pai2015arminnogo | 0:ebc6a8996650 | 250 | crtajNula(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 251 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 252 | case 1: |
pai2015arminnogo | 0:ebc6a8996650 | 253 | crtajJedan(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 254 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 255 | case 2: |
pai2015arminnogo | 0:ebc6a8996650 | 256 | crtajDva(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 257 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 258 | case 3: |
pai2015arminnogo | 0:ebc6a8996650 | 259 | crtajTri(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 260 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 261 | case 4: |
pai2015arminnogo | 0:ebc6a8996650 | 262 | crtajCetiri(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 263 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 264 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 265 | crtajPet(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 266 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 267 | case 6: |
pai2015arminnogo | 0:ebc6a8996650 | 268 | crtajSest(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 269 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 270 | case 7: |
pai2015arminnogo | 0:ebc6a8996650 | 271 | crtajSedam(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 272 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 273 | case 8: |
pai2015arminnogo | 0:ebc6a8996650 | 274 | crtajOsam(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 275 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 276 | case 9: |
pai2015arminnogo | 0:ebc6a8996650 | 277 | crtajDevet(pozicija, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 278 | } |
pai2015arminnogo | 0:ebc6a8996650 | 279 | } |
pai2015arminnogo | 0:ebc6a8996650 | 280 | |
pai2015arminnogo | 0:ebc6a8996650 | 281 | |
pai2015arminnogo | 0:ebc6a8996650 | 282 | //funkcija upravljanja dzojstikom za vrijemeMod |
pai2015arminnogo | 0:ebc6a8996650 | 283 | void dzojstikVrijeme() |
pai2015arminnogo | 0:ebc6a8996650 | 284 | { |
pai2015arminnogo | 0:ebc6a8996650 | 285 | if(tDzojstik.read()<0.5) return; |
pai2015arminnogo | 0:ebc6a8996650 | 286 | if (VRx<1.0/3.0) { //&& VRy>1.0/3.0 && VRy<2.0/3.0 |
pai2015arminnogo | 0:ebc6a8996650 | 287 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 288 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 289 | xTrenutnaCifra = 48; |
pai2015arminnogo | 0:ebc6a8996650 | 290 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 291 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 292 | xTrenutnaCifra = 24; |
pai2015arminnogo | 0:ebc6a8996650 | 293 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 294 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 295 | xTrenutnaCifra = 5; |
pai2015arminnogo | 0:ebc6a8996650 | 296 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 297 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 298 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 299 | } |
pai2015arminnogo | 0:ebc6a8996650 | 300 | } else if (VRx>2.0/3.0) { //&& VRy>1.0/3.0 && VRy<2.0/3.0 |
pai2015arminnogo | 0:ebc6a8996650 | 301 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 302 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 303 | xTrenutnaCifra = 24; |
pai2015arminnogo | 0:ebc6a8996650 | 304 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 305 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 306 | xTrenutnaCifra = 48; |
pai2015arminnogo | 0:ebc6a8996650 | 307 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 308 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 309 | xTrenutnaCifra = 67; |
pai2015arminnogo | 0:ebc6a8996650 | 310 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 311 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 312 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 313 | } |
pai2015arminnogo | 0:ebc6a8996650 | 314 | } |
pai2015arminnogo | 0:ebc6a8996650 | 315 | |
pai2015arminnogo | 0:ebc6a8996650 | 316 | if (VRy<1.0/3.0) { |
pai2015arminnogo | 0:ebc6a8996650 | 317 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 318 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 319 | cetvrtiBroj--; |
pai2015arminnogo | 0:ebc6a8996650 | 320 | if(cetvrtiBroj<0) cetvrtiBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 321 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 322 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 323 | treciBroj--; |
pai2015arminnogo | 0:ebc6a8996650 | 324 | if(treciBroj<0) treciBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 325 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 326 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 327 | drugiBroj--; |
pai2015arminnogo | 0:ebc6a8996650 | 328 | if(drugiBroj<0) drugiBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 329 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 330 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 331 | prviBroj--; |
pai2015arminnogo | 0:ebc6a8996650 | 332 | if(prviBroj<0) prviBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 333 | } |
pai2015arminnogo | 0:ebc6a8996650 | 334 | |
pai2015arminnogo | 0:ebc6a8996650 | 335 | } else if (VRy>2.0/3.0) { |
pai2015arminnogo | 0:ebc6a8996650 | 336 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 337 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 338 | cetvrtiBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 339 | if(cetvrtiBroj>9) cetvrtiBroj = 9; |
pai2015arminnogo | 0:ebc6a8996650 | 340 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 341 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 342 | treciBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 343 | if(treciBroj>5) treciBroj = 5; |
pai2015arminnogo | 0:ebc6a8996650 | 344 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 345 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 346 | drugiBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 347 | if(prviBroj == 2 && drugiBroj>3) drugiBroj = 3; |
pai2015arminnogo | 0:ebc6a8996650 | 348 | if(drugiBroj>9) drugiBroj = 9; |
pai2015arminnogo | 0:ebc6a8996650 | 349 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 350 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 351 | prviBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 352 | if(drugiBroj>3 && prviBroj>1) prviBroj = 1; |
pai2015arminnogo | 0:ebc6a8996650 | 353 | if(prviBroj>2) prviBroj = 2; |
pai2015arminnogo | 0:ebc6a8996650 | 354 | } |
pai2015arminnogo | 0:ebc6a8996650 | 355 | } |
pai2015arminnogo | 0:ebc6a8996650 | 356 | tDzojstik.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 357 | tDzojstik.start(); |
pai2015arminnogo | 0:ebc6a8996650 | 358 | } |
pai2015arminnogo | 0:ebc6a8996650 | 359 | |
pai2015arminnogo | 0:ebc6a8996650 | 360 | //funkcija upravljanja dzojstikom za alarmMod |
pai2015arminnogo | 0:ebc6a8996650 | 361 | |
pai2015arminnogo | 0:ebc6a8996650 | 362 | void dzojstikAlarm() |
pai2015arminnogo | 0:ebc6a8996650 | 363 | { |
pai2015arminnogo | 0:ebc6a8996650 | 364 | if(tDzojstik.read()<0.5) return; |
pai2015arminnogo | 0:ebc6a8996650 | 365 | if (VRx<1.0/3.0) { |
pai2015arminnogo | 0:ebc6a8996650 | 366 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 367 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 368 | xTrenutnaCifra = 48; |
pai2015arminnogo | 0:ebc6a8996650 | 369 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 370 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 371 | xTrenutnaCifra = 24; |
pai2015arminnogo | 0:ebc6a8996650 | 372 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 373 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 374 | xTrenutnaCifra = 5; |
pai2015arminnogo | 0:ebc6a8996650 | 375 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 376 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 377 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 378 | } |
pai2015arminnogo | 0:ebc6a8996650 | 379 | } else if (VRx>2.0/3.0) { |
pai2015arminnogo | 0:ebc6a8996650 | 380 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 381 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 382 | xTrenutnaCifra = 24; |
pai2015arminnogo | 0:ebc6a8996650 | 383 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 384 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 385 | xTrenutnaCifra = 48; |
pai2015arminnogo | 0:ebc6a8996650 | 386 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 387 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 388 | xTrenutnaCifra = 67; |
pai2015arminnogo | 0:ebc6a8996650 | 389 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 390 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 391 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 392 | } |
pai2015arminnogo | 0:ebc6a8996650 | 393 | } |
pai2015arminnogo | 0:ebc6a8996650 | 394 | |
pai2015arminnogo | 0:ebc6a8996650 | 395 | if (VRy<1.0/3.0) { |
pai2015arminnogo | 0:ebc6a8996650 | 396 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 397 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 398 | cetvrtiAlarm--; |
pai2015arminnogo | 0:ebc6a8996650 | 399 | if(cetvrtiAlarm<0) cetvrtiAlarm = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 400 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 401 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 402 | treciAlarm--; |
pai2015arminnogo | 0:ebc6a8996650 | 403 | if(treciAlarm<0) treciAlarm = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 404 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 405 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 406 | drugiAlarm--; |
pai2015arminnogo | 0:ebc6a8996650 | 407 | if(drugiAlarm<0) drugiAlarm = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 408 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 409 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 410 | prviAlarm--; |
pai2015arminnogo | 0:ebc6a8996650 | 411 | if(prviAlarm<0) prviAlarm = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 412 | } |
pai2015arminnogo | 0:ebc6a8996650 | 413 | |
pai2015arminnogo | 0:ebc6a8996650 | 414 | } else if (VRy>2.0/3.0) { |
pai2015arminnogo | 0:ebc6a8996650 | 415 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 416 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 417 | cetvrtiAlarm++; |
pai2015arminnogo | 0:ebc6a8996650 | 418 | if(cetvrtiAlarm>9) cetvrtiAlarm = 9; |
pai2015arminnogo | 0:ebc6a8996650 | 419 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 420 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 421 | treciAlarm++; |
pai2015arminnogo | 0:ebc6a8996650 | 422 | if(treciAlarm>5) treciAlarm = 5; |
pai2015arminnogo | 0:ebc6a8996650 | 423 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 424 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 425 | drugiAlarm++; |
pai2015arminnogo | 0:ebc6a8996650 | 426 | if(prviAlarm == 2 && drugiAlarm>3) drugiAlarm = 3; |
pai2015arminnogo | 0:ebc6a8996650 | 427 | if(drugiAlarm>9) drugiAlarm = 9; |
pai2015arminnogo | 0:ebc6a8996650 | 428 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 429 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 430 | prviAlarm++; |
pai2015arminnogo | 0:ebc6a8996650 | 431 | if(drugiAlarm>3 && prviAlarm>1) prviAlarm = 1; |
pai2015arminnogo | 0:ebc6a8996650 | 432 | if(prviAlarm>2) prviAlarm = 2; |
pai2015arminnogo | 0:ebc6a8996650 | 433 | } |
pai2015arminnogo | 0:ebc6a8996650 | 434 | } |
pai2015arminnogo | 0:ebc6a8996650 | 435 | tDzojstik.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 436 | tDzojstik.start(); |
pai2015arminnogo | 0:ebc6a8996650 | 437 | } |
pai2015arminnogo | 0:ebc6a8996650 | 438 | |
pai2015arminnogo | 0:ebc6a8996650 | 439 | |
pai2015arminnogo | 0:ebc6a8996650 | 440 | //prikaz moda |
pai2015arminnogo | 0:ebc6a8996650 | 441 | void crtajA() |
pai2015arminnogo | 0:ebc6a8996650 | 442 | { |
pai2015arminnogo | 0:ebc6a8996650 | 443 | display.setPixel(40, 30); |
pai2015arminnogo | 0:ebc6a8996650 | 444 | display.setPixel(41, 30); |
pai2015arminnogo | 0:ebc6a8996650 | 445 | display.setPixel(42, 30); |
pai2015arminnogo | 0:ebc6a8996650 | 446 | display.setPixel(40, 31); |
pai2015arminnogo | 0:ebc6a8996650 | 447 | display.setPixel(42, 31); |
pai2015arminnogo | 0:ebc6a8996650 | 448 | display.setPixel(40, 32); |
pai2015arminnogo | 0:ebc6a8996650 | 449 | display.setPixel(41, 32); |
pai2015arminnogo | 0:ebc6a8996650 | 450 | display.setPixel(42, 32); |
pai2015arminnogo | 0:ebc6a8996650 | 451 | display.setPixel(40, 33); |
pai2015arminnogo | 0:ebc6a8996650 | 452 | display.setPixel(42, 33); |
pai2015arminnogo | 0:ebc6a8996650 | 453 | display.setPixel(40, 34); |
pai2015arminnogo | 0:ebc6a8996650 | 454 | display.setPixel(42, 34); |
pai2015arminnogo | 0:ebc6a8996650 | 455 | } |
pai2015arminnogo | 0:ebc6a8996650 | 456 | |
pai2015arminnogo | 0:ebc6a8996650 | 457 | void crtajV() |
pai2015arminnogo | 0:ebc6a8996650 | 458 | { |
pai2015arminnogo | 0:ebc6a8996650 | 459 | display.setPixel(39, 31); |
pai2015arminnogo | 0:ebc6a8996650 | 460 | display.setPixel(43, 31); |
pai2015arminnogo | 0:ebc6a8996650 | 461 | display.setPixel(39, 32); |
pai2015arminnogo | 0:ebc6a8996650 | 462 | display.setPixel(43, 32); |
pai2015arminnogo | 0:ebc6a8996650 | 463 | display.setPixel(40, 33); |
pai2015arminnogo | 0:ebc6a8996650 | 464 | display.setPixel(42, 33); |
pai2015arminnogo | 0:ebc6a8996650 | 465 | display.setPixel(41, 34); |
pai2015arminnogo | 0:ebc6a8996650 | 466 | } |
pai2015arminnogo | 0:ebc6a8996650 | 467 | |
pai2015arminnogo | 0:ebc6a8996650 | 468 | void brisiMod() |
pai2015arminnogo | 0:ebc6a8996650 | 469 | { |
pai2015arminnogo | 0:ebc6a8996650 | 470 | for(int i = 39; i < 44; i++) |
pai2015arminnogo | 0:ebc6a8996650 | 471 | for(int j = 30; j < 35; j++) |
pai2015arminnogo | 0:ebc6a8996650 | 472 | display.clearPixel(i, j); |
pai2015arminnogo | 0:ebc6a8996650 | 473 | } |
pai2015arminnogo | 0:ebc6a8996650 | 474 | |
pai2015arminnogo | 0:ebc6a8996650 | 475 | |
pai2015arminnogo | 0:ebc6a8996650 | 476 | void blinkaj() |
pai2015arminnogo | 0:ebc6a8996650 | 477 | { |
pai2015arminnogo | 0:ebc6a8996650 | 478 | //vrijeme mod |
pai2015arminnogo | 0:ebc6a8996650 | 479 | if(vrijemeMod && !blink) { |
pai2015arminnogo | 0:ebc6a8996650 | 480 | blink = true; |
pai2015arminnogo | 0:ebc6a8996650 | 481 | |
pai2015arminnogo | 0:ebc6a8996650 | 482 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 483 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 484 | ispisiPom(cetvrtiBroj, 67); |
pai2015arminnogo | 0:ebc6a8996650 | 485 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 486 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 487 | ispisiPom(treciBroj, 48); |
pai2015arminnogo | 0:ebc6a8996650 | 488 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 489 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 490 | ispisiPom(drugiBroj, 24); |
pai2015arminnogo | 0:ebc6a8996650 | 491 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 492 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 493 | ispisiPom(prviBroj, 5); |
pai2015arminnogo | 0:ebc6a8996650 | 494 | } |
pai2015arminnogo | 0:ebc6a8996650 | 495 | } else if(vrijemeMod && blink) { |
pai2015arminnogo | 0:ebc6a8996650 | 496 | blink = false; |
pai2015arminnogo | 0:ebc6a8996650 | 497 | |
pai2015arminnogo | 0:ebc6a8996650 | 498 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 499 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 500 | brisi(xCetvrta, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 501 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 502 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 503 | brisi(xTreca, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 504 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 505 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 506 | brisi(xDruga, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 507 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 508 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 509 | brisi(xPrva, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 510 | } |
pai2015arminnogo | 0:ebc6a8996650 | 511 | } |
pai2015arminnogo | 0:ebc6a8996650 | 512 | |
pai2015arminnogo | 0:ebc6a8996650 | 513 | //alarm mod |
pai2015arminnogo | 0:ebc6a8996650 | 514 | if(alarmMod && !blink) { |
pai2015arminnogo | 0:ebc6a8996650 | 515 | blink = true; |
pai2015arminnogo | 0:ebc6a8996650 | 516 | |
pai2015arminnogo | 0:ebc6a8996650 | 517 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 518 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 519 | ispisiPom(cetvrtiAlarm, 67); |
pai2015arminnogo | 0:ebc6a8996650 | 520 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 521 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 522 | ispisiPom(treciAlarm, 48); |
pai2015arminnogo | 0:ebc6a8996650 | 523 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 524 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 525 | ispisiPom(drugiAlarm, 24); |
pai2015arminnogo | 0:ebc6a8996650 | 526 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 527 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 528 | ispisiPom(prviAlarm, 5); |
pai2015arminnogo | 0:ebc6a8996650 | 529 | } |
pai2015arminnogo | 0:ebc6a8996650 | 530 | } else if(alarmMod && blink) { |
pai2015arminnogo | 0:ebc6a8996650 | 531 | blink = false; |
pai2015arminnogo | 0:ebc6a8996650 | 532 | |
pai2015arminnogo | 0:ebc6a8996650 | 533 | switch(xTrenutnaCifra) { |
pai2015arminnogo | 0:ebc6a8996650 | 534 | case 67: |
pai2015arminnogo | 0:ebc6a8996650 | 535 | brisi(xCetvrta, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 536 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 537 | case 48: |
pai2015arminnogo | 0:ebc6a8996650 | 538 | brisi(xTreca, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 539 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 540 | case 24: |
pai2015arminnogo | 0:ebc6a8996650 | 541 | brisi(xDruga, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 542 | break; |
pai2015arminnogo | 0:ebc6a8996650 | 543 | case 5: |
pai2015arminnogo | 0:ebc6a8996650 | 544 | brisi(xPrva, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 545 | } |
pai2015arminnogo | 0:ebc6a8996650 | 546 | } |
pai2015arminnogo | 0:ebc6a8996650 | 547 | } |
pai2015arminnogo | 0:ebc6a8996650 | 548 | |
pai2015arminnogo | 0:ebc6a8996650 | 549 | void odrediMod() |
pai2015arminnogo | 0:ebc6a8996650 | 550 | { |
pai2015arminnogo | 0:ebc6a8996650 | 551 | if(modTimer.read()>2 && vrijemeMod == false) { |
pai2015arminnogo | 0:ebc6a8996650 | 552 | alarmMod = true; |
pai2015arminnogo | 0:ebc6a8996650 | 553 | tDzojstik.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 554 | tDzojstik.start(); |
pai2015arminnogo | 0:ebc6a8996650 | 555 | } else if(alarmMod == false) { |
pai2015arminnogo | 0:ebc6a8996650 | 556 | vrijemeMod = true; |
pai2015arminnogo | 0:ebc6a8996650 | 557 | tDzojstik.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 558 | tDzojstik.start(); |
pai2015arminnogo | 0:ebc6a8996650 | 559 | } |
pai2015arminnogo | 0:ebc6a8996650 | 560 | modTimer.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 561 | |
pai2015arminnogo | 0:ebc6a8996650 | 562 | if(alarmMod) { |
pai2015arminnogo | 0:ebc6a8996650 | 563 | if(!tasterP) { |
pai2015arminnogo | 0:ebc6a8996650 | 564 | if(tVrijeme.read() > 0.2) { //debouncing |
pai2015arminnogo | 0:ebc6a8996650 | 565 | tVrijeme.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 566 | tasterP = true; |
pai2015arminnogo | 0:ebc6a8996650 | 567 | crtajA(); |
pai2015arminnogo | 0:ebc6a8996650 | 568 | |
pai2015arminnogo | 0:ebc6a8996650 | 569 | prviAlarm = prviBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 570 | drugiAlarm = drugiBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 571 | treciAlarm = treciBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 572 | cetvrtiAlarm = cetvrtiBroj; |
pai2015arminnogo | 0:ebc6a8996650 | 573 | |
pai2015arminnogo | 0:ebc6a8996650 | 574 | blinkanje.attach(&blinkaj, 1); //atachiramo blinkanje cifre koja se mijenja, povecati interval blinkanja ako bude potrebe |
pai2015arminnogo | 0:ebc6a8996650 | 575 | } |
pai2015arminnogo | 0:ebc6a8996650 | 576 | } else { |
pai2015arminnogo | 0:ebc6a8996650 | 577 | blinkanje.detach(); |
pai2015arminnogo | 0:ebc6a8996650 | 578 | tasterP = false; |
pai2015arminnogo | 0:ebc6a8996650 | 579 | alarmMod = false; |
pai2015arminnogo | 0:ebc6a8996650 | 580 | brisiMod(); |
pai2015arminnogo | 0:ebc6a8996650 | 581 | } |
pai2015arminnogo | 0:ebc6a8996650 | 582 | |
pai2015arminnogo | 0:ebc6a8996650 | 583 | } |
pai2015arminnogo | 0:ebc6a8996650 | 584 | |
pai2015arminnogo | 0:ebc6a8996650 | 585 | else if(vrijemeMod) { |
pai2015arminnogo | 0:ebc6a8996650 | 586 | if(!tasterP) { |
pai2015arminnogo | 0:ebc6a8996650 | 587 | if(tVrijeme.read() > 0.2) { //debouncing |
pai2015arminnogo | 0:ebc6a8996650 | 588 | tVrijeme.reset(); |
pai2015arminnogo | 0:ebc6a8996650 | 589 | tasterP = true; |
pai2015arminnogo | 0:ebc6a8996650 | 590 | crtajV(); |
pai2015arminnogo | 0:ebc6a8996650 | 591 | |
pai2015arminnogo | 0:ebc6a8996650 | 592 | blinkanje.attach(&blinkaj, 1); // povecati interval ako bude potrebno |
pai2015arminnogo | 0:ebc6a8996650 | 593 | } |
pai2015arminnogo | 0:ebc6a8996650 | 594 | } |
pai2015arminnogo | 0:ebc6a8996650 | 595 | |
pai2015arminnogo | 0:ebc6a8996650 | 596 | else { |
pai2015arminnogo | 0:ebc6a8996650 | 597 | blinkanje.detach(); |
pai2015arminnogo | 0:ebc6a8996650 | 598 | tasterP = false; |
pai2015arminnogo | 0:ebc6a8996650 | 599 | vrijemeMod = false; |
pai2015arminnogo | 0:ebc6a8996650 | 600 | brisiMod(); |
pai2015arminnogo | 0:ebc6a8996650 | 601 | } |
pai2015arminnogo | 0:ebc6a8996650 | 602 | } |
pai2015arminnogo | 0:ebc6a8996650 | 603 | |
pai2015arminnogo | 0:ebc6a8996650 | 604 | } |
pai2015arminnogo | 0:ebc6a8996650 | 605 | |
pai2015arminnogo | 0:ebc6a8996650 | 606 | void tasterPritisnut() // koristimo kao pomoc za određivanje moda |
pai2015arminnogo | 0:ebc6a8996650 | 607 | { |
pai2015arminnogo | 0:ebc6a8996650 | 608 | modTimer.start(); |
pai2015arminnogo | 0:ebc6a8996650 | 609 | } |
pai2015arminnogo | 0:ebc6a8996650 | 610 | |
pai2015arminnogo | 0:ebc6a8996650 | 611 | //funkcija za paljenje alarma |
pai2015arminnogo | 0:ebc6a8996650 | 612 | void alarm() |
pai2015arminnogo | 0:ebc6a8996650 | 613 | { |
pai2015arminnogo | 0:ebc6a8996650 | 614 | if(!alarmInverse) { |
pai2015arminnogo | 0:ebc6a8996650 | 615 | display.inverseMode(); |
pai2015arminnogo | 0:ebc6a8996650 | 616 | buzz = 0.5; |
pai2015arminnogo | 0:ebc6a8996650 | 617 | //podesiti frekvenciju |
pai2015arminnogo | 0:ebc6a8996650 | 618 | alarmInverse = true; |
pai2015arminnogo | 0:ebc6a8996650 | 619 | } else { |
pai2015arminnogo | 0:ebc6a8996650 | 620 | display.normalMode(); |
pai2015arminnogo | 0:ebc6a8996650 | 621 | buzz = 0; //podesiti frekvenciju |
pai2015arminnogo | 0:ebc6a8996650 | 622 | alarmInverse = false; |
pai2015arminnogo | 0:ebc6a8996650 | 623 | } |
pai2015arminnogo | 0:ebc6a8996650 | 624 | display.refresh(); |
pai2015arminnogo | 0:ebc6a8996650 | 625 | } |
pai2015arminnogo | 0:ebc6a8996650 | 626 | |
pai2015arminnogo | 0:ebc6a8996650 | 627 | //funkcija za mjerenje vremena |
pai2015arminnogo | 0:ebc6a8996650 | 628 | void mjeriVrijeme() |
pai2015arminnogo | 0:ebc6a8996650 | 629 | { |
pai2015arminnogo | 0:ebc6a8996650 | 630 | cetvrtiBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 631 | if(cetvrtiBroj>9) { |
pai2015arminnogo | 0:ebc6a8996650 | 632 | cetvrtiBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 633 | treciBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 634 | if(treciBroj>5) { |
pai2015arminnogo | 0:ebc6a8996650 | 635 | treciBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 636 | drugiBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 637 | if(drugiBroj>9 || prviBroj == 2 && drugiBroj>3) { |
pai2015arminnogo | 0:ebc6a8996650 | 638 | drugiBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 639 | prviBroj++; |
pai2015arminnogo | 0:ebc6a8996650 | 640 | if(prviBroj>2) { |
pai2015arminnogo | 0:ebc6a8996650 | 641 | prviBroj = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 642 | } |
pai2015arminnogo | 0:ebc6a8996650 | 643 | } |
pai2015arminnogo | 0:ebc6a8996650 | 644 | } |
pai2015arminnogo | 0:ebc6a8996650 | 645 | } |
pai2015arminnogo | 0:ebc6a8996650 | 646 | |
pai2015arminnogo | 0:ebc6a8996650 | 647 | if(!alarmMod) { |
pai2015arminnogo | 0:ebc6a8996650 | 648 | brisi(xPrva, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 649 | brisi(xDruga, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 650 | brisi(xTreca, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 651 | brisi(xCetvrta, yCifra); |
pai2015arminnogo | 0:ebc6a8996650 | 652 | |
pai2015arminnogo | 0:ebc6a8996650 | 653 | ispisiPom(prviBroj, xPrva); |
pai2015arminnogo | 0:ebc6a8996650 | 654 | ispisiPom(drugiBroj, xDruga); |
pai2015arminnogo | 0:ebc6a8996650 | 655 | ispisiPom(treciBroj, xTreca); |
pai2015arminnogo | 0:ebc6a8996650 | 656 | ispisiPom(cetvrtiBroj, xCetvrta); |
pai2015arminnogo | 0:ebc6a8996650 | 657 | } |
pai2015arminnogo | 0:ebc6a8996650 | 658 | |
pai2015arminnogo | 0:ebc6a8996650 | 659 | if(prviBroj == prviAlarm && drugiBroj == drugiAlarm && treciBroj == treciAlarm && cetvrtiBroj == cetvrtiAlarm) { |
pai2015arminnogo | 0:ebc6a8996650 | 660 | talarm.attach(&alarm, 1); |
pai2015arminnogo | 0:ebc6a8996650 | 661 | prviAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 662 | drugiAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 663 | treciAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 664 | cetvrtiAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 665 | } else { |
pai2015arminnogo | 0:ebc6a8996650 | 666 | talarm.detach(); |
pai2015arminnogo | 0:ebc6a8996650 | 667 | display.normalMode(); |
pai2015arminnogo | 0:ebc6a8996650 | 668 | buzz = 0; |
pai2015arminnogo | 0:ebc6a8996650 | 669 | } |
pai2015arminnogo | 0:ebc6a8996650 | 670 | |
pai2015arminnogo | 0:ebc6a8996650 | 671 | display.refresh(); |
pai2015arminnogo | 0:ebc6a8996650 | 672 | } |
pai2015arminnogo | 0:ebc6a8996650 | 673 | |
pai2015arminnogo | 0:ebc6a8996650 | 674 | int main() |
pai2015arminnogo | 0:ebc6a8996650 | 675 | { |
pai2015arminnogo | 0:ebc6a8996650 | 676 | enable = 1; |
pai2015arminnogo | 0:ebc6a8996650 | 677 | display.init(); |
pai2015arminnogo | 0:ebc6a8996650 | 678 | buzz.period_us(500); |
pai2015arminnogo | 0:ebc6a8996650 | 679 | |
pai2015arminnogo | 0:ebc6a8996650 | 680 | prviAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 681 | drugiAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 682 | treciAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 683 | cetvrtiAlarm = -1; |
pai2015arminnogo | 0:ebc6a8996650 | 684 | |
pai2015arminnogo | 0:ebc6a8996650 | 685 | //vratiti na nulu kad se zavrsi testiranje |
pai2015arminnogo | 0:ebc6a8996650 | 686 | prviBroj = 1; |
pai2015arminnogo | 0:ebc6a8996650 | 687 | drugiBroj = 9; |
pai2015arminnogo | 0:ebc6a8996650 | 688 | treciBroj = 2; |
pai2015arminnogo | 0:ebc6a8996650 | 689 | cetvrtiBroj = 2; |
pai2015arminnogo | 0:ebc6a8996650 | 690 | |
pai2015arminnogo | 0:ebc6a8996650 | 691 | ispisiPom(prviBroj, xPrva); |
pai2015arminnogo | 0:ebc6a8996650 | 692 | ispisiPom(drugiBroj, xDruga); |
pai2015arminnogo | 0:ebc6a8996650 | 693 | ispisiPom(treciBroj, xTreca); |
pai2015arminnogo | 0:ebc6a8996650 | 694 | ispisiPom(cetvrtiBroj, xCetvrta); |
pai2015arminnogo | 0:ebc6a8996650 | 695 | |
pai2015arminnogo | 0:ebc6a8996650 | 696 | tVrijeme.start(); |
pai2015arminnogo | 0:ebc6a8996650 | 697 | taster1.rise(&tasterPritisnut); |
pai2015arminnogo | 0:ebc6a8996650 | 698 | taster1.fall(&odrediMod); //ovjde se postavlja funckija za određivanje moda tj. mjericemo vrijeme koje prodje od pritiska tastera do pustanja |
pai2015arminnogo | 0:ebc6a8996650 | 699 | dvotacka.attach(&crtajDvotacku, 1); |
pai2015arminnogo | 0:ebc6a8996650 | 700 | mjeri.attach(&mjeriVrijeme, 60); |
pai2015arminnogo | 0:ebc6a8996650 | 701 | |
pai2015arminnogo | 0:ebc6a8996650 | 702 | while(1) { |
pai2015arminnogo | 0:ebc6a8996650 | 703 | if(alarmMod) dzojstikAlarm(); |
pai2015arminnogo | 0:ebc6a8996650 | 704 | else if(vrijemeMod) dzojstikVrijeme(); |
pai2015arminnogo | 0:ebc6a8996650 | 705 | } |
pai2015arminnogo | 0:ebc6a8996650 | 706 | } |