Merisa Golić Armin Nogo

Dependencies:   N5110 eeprom mbed

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?

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