US 2016 Projektni zadatak: Analogni sat Radili: Kemal Halilbegović, Benjamin Hrustemović
Dependencies: DS1307 N5110 debug mbed
main.cpp@0:5e307f0c3230, 2016-06-06 (annotated)
- Committer:
- 2016US_KemalHalilbeg
- Date:
- Mon Jun 06 16:21:43 2016 +0000
- Revision:
- 0:5e307f0c3230
US 2015/2016; Projekat Analogni sat; Radili:; Kemal Halilbegovi?; Benjamin Hrustemovi?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
2016US_KemalHalilbeg | 0:5e307f0c3230 | 1 | #include "mbed.h" |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 2 | #include "N5110.h" |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 3 | #include "ds1307.h"//iskreno se nadam da je ovaj |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 4 | #include <stdio.h> |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 5 | #define dp23 P0_0 |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 6 | #define PI 3.14 |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 7 | //N5110 lcd(VCC,SCE,RST,DC,MOSI,SCLK,LED)); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 8 | N5110 lcd(dp4,dp24,dp23,dp28,dp2,dp6,dp18); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 9 | DS1307 sat(dp5,dp27); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 10 | BusIn ulazi(dp9,dp10,dp11,dp13); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 11 | BusOut izlazi(dp25,dp26,dp17,dp15); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 12 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 13 | DigitalOut enable(dp14); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 14 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 15 | int h(0),m(0),s(0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 16 | int dan, mjesec, godina,usedmici; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 17 | char buffer[4]; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 18 | char taster; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 19 | Ticker tastatura; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 20 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 21 | //broj dana u mjesecu |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 22 | int brojdana[12]= {31,29,31,30,31,30,31,31,30,31,30,31}; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 23 | //provjerava prijestupne |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 24 | bool DaLiJePrijestupna(int god) |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 25 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 26 | if (god%4==0) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 27 | if(god%100) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 28 | if(god%400) return true; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 29 | return false; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 30 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 31 | return true; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 32 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 33 | return false; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 34 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 35 | //----------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 36 | //varijable za alarm |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 37 | int alarmH(0),alarmM(0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 38 | bool alarmUkljucen(false); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 39 | Timer t; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 40 | //------------------------------------------------ |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 41 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 42 | int duzinaK1(5),duzinaK2(12),duzinaK3(15);//duzina kazaljki |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 43 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 44 | //-------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 45 | //TACKE NA SATU (1-12) (pokusavam izbjeci staljno racunanje ovih |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 46 | //varijabli, pa cu ih jednostavno ostaviti ovdje kao globalne) |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 47 | float x[12]= {(42+18*cos(PI/2)),(42+18*cos(PI/3)),(42+18*cos(PI/6)),(42+18),(42+18*cos(11*PI/6)), |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 48 | (42+18*cos(5*PI/3)),(42+18*cos(3*PI/2)),(42+18*cos(4*PI/3)),(42+18*cos(7*PI/6)),(42+18*cos(PI)),(42+18*cos(5*PI/6)),(42+18*cos(2*PI/3)) |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 49 | }; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 50 | float y[12]= {(24+18*sin(PI/2)),(24+18*sin(PI/3)),(24+18*sin(PI/6)),(24),(24+18*sin(11*PI/6)), |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 51 | (24+18*sin(5*PI/3)),(24+18*sin(3*PI/2)),(24+18*sin(4*PI/3)),(24+18*sin(7*PI/6)),(24+18*sin(PI)),(24+18*sin(5*PI/6)),(24+18*sin(2*PI/3)) |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 52 | }; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 53 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 54 | //-------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 55 | //FUNKCIJA ZA KAZALJKE |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 56 | void Crtajkazaljke () |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 57 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 58 | //Kazaljka za sate |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 59 | float ugao1= (h%12 * 360/12 + m*30/60-90)*PI/180; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 60 | float xK1=42+duzinaK1*cos(ugao1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 61 | float yK1=24+duzinaK1*sin(ugao1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 62 | //Kazaljka za minute |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 63 | float ugao2= (m%60*360/60-90)*PI/180; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 64 | float xK2=42+duzinaK2*cos(ugao2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 65 | float yK2=24+duzinaK2*sin(ugao2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 66 | //Kazaljka za sekunde |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 67 | float ugao3= (s%60*360/60-90)*PI/180; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 68 | float xK3=42+duzinaK3*cos(ugao3); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 69 | float yK3=24+duzinaK3*sin(ugao3); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 70 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 71 | //iscrtavanje kazaljki |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 72 | lcd.drawLine(42,24,xK1,yK1,1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 73 | lcd.drawLine(42,24,xK2,yK2,1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 74 | lcd.drawLine(42,24,xK3,yK3,1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 75 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 76 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 77 | //----------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 78 | //FUNKCIJA ZA CRTANJE SATA |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 79 | void NacrtajSat() |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 80 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 81 | //krug |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 82 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 83 | lcd.drawCircle(42,24,20,0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 84 | //tacke koje oznacavaju sate, izbjegavam for petlju zbog efikasnosti |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 85 | lcd.setPixel(x[0],y[0]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 86 | lcd.setPixel(x[1],y[1]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 87 | lcd.setPixel(x[2],y[2]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 88 | lcd.setPixel(x[3],y[3]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 89 | lcd.setPixel(x[4],y[4]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 90 | lcd.setPixel(x[5],y[5]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 91 | lcd.setPixel(x[6],y[6]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 92 | lcd.setPixel(x[7],y[7]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 93 | lcd.setPixel(x[8],y[8]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 94 | lcd.setPixel(x[9],y[9]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 95 | lcd.setPixel(x[10],y[10]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 96 | lcd.setPixel(x[11],y[11]); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 97 | sprintf(buffer,"%d",dan);//treba namjestiti da se u ugao upise datum i alarm isto |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 98 | lcd.printString(buffer,71,3); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 99 | sprintf(buffer,"%d",mjesec); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 100 | lcd.printString(buffer,71,4); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 101 | sprintf(buffer,"%d",godina); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 102 | lcd.printString(buffer,71,5); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 103 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 104 | if(alarmUkljucen) |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 105 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 106 | sprintf(buffer,"%d ",alarmH); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 107 | lcd.printString(buffer,0,0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 108 | sprintf(buffer,"%d ",alarmM); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 109 | lcd.printString(buffer,0,1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 110 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 111 | Crtajkazaljke(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 112 | lcd.refresh(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 113 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 114 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 115 | //------------------------------------------------------------------------ |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 116 | void Tastatura() |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 117 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 118 | izlazi[0] = 0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 119 | izlazi[1]= 0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 120 | izlazi[2]= 0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 121 | izlazi[3]= 0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 122 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 123 | izlazi[0] = 1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 124 | if(ulazi[0] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 125 | taster= '1'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 126 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 127 | } else if(ulazi[1] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 128 | taster= '2'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 129 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 130 | } else if(ulazi[2] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 131 | taster= '3'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 132 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 133 | } else if(ulazi[3] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 134 | taster= 'A'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 135 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 136 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 137 | izlazi[0] = 0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 138 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 139 | izlazi[1] = 1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 140 | if(ulazi[0] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 141 | taster= '4'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 142 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 143 | } else if(ulazi[1] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 144 | taster= '5'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 145 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 146 | } else if(ulazi[2] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 147 | taster= '6'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 148 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 149 | } else if(ulazi[3] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 150 | taster= 'B'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 151 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 152 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 153 | izlazi[1] = 0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 154 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 155 | izlazi[2] = 1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 156 | if(ulazi[0] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 157 | taster= '7'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 158 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 159 | } else if(ulazi[1] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 160 | taster= '8'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 161 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 162 | } else if(ulazi[2] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 163 | taster= '9'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 164 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 165 | } else if(ulazi[3] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 166 | taster= 'C'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 167 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 168 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 169 | izlazi[2] = 1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 170 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 171 | izlazi[3] = 1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 172 | if(ulazi[0] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 173 | taster='*'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 174 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 175 | } else if(ulazi[1] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 176 | taster= '0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 177 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 178 | } else if(ulazi[2] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 179 | taster= '#'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 180 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 181 | } else if(ulazi[3] == 1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 182 | taster='D'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 183 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 184 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 185 | izlazi[3] = 1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 186 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 187 | taster= ' '; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 188 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 189 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 190 | //--------------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 191 | void AlarmPodesavanje() |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 192 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 193 | int alarmUnosBrojac(0),alarmH1(0),alarmH2(0),alarmM1(0),alarmM2(0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 194 | char alarmstring [10]; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 195 | alarmH1=alarmH/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 196 | alarmH%=10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 197 | alarmH2=alarmH; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 198 | alarmM1=alarmM/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 199 | alarmM%=10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 200 | alarmM2=alarmM; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 201 | while (1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 202 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 203 | lcd.printString("Set alarm:",0,0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 204 | sprintf(alarmstring,"%d%d:%d%d",alarmH1,alarmH2,alarmM1,alarmM2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 205 | lcd.printString(alarmstring,0,1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 206 | lcd.refresh(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 207 | if(taster=='C') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 208 | lcd.printString("Alarm is off",0,2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 209 | wait(0.3); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 210 | alarmH1=0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 211 | alarmH2=0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 212 | alarmM1=0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 213 | alarmM2=0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 214 | alarmUnosBrojac=0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 215 | alarmUkljucen=false; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 216 | } else if(taster=='D') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 217 | alarmH=10*alarmH1+alarmH2; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 218 | alarmM=10*alarmM1+alarmM2; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 219 | alarmUkljucen=true; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 220 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 221 | } else if(taster>=0+'0' && taster<=9+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 222 | switch (alarmUnosBrojac) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 223 | case 0: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 224 | if(taster<=2+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 225 | alarmH1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 226 | alarmUnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 227 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 228 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 229 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 230 | case 1: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 231 | if((alarmH1==2 && taster<=3+'0' )|| (alarmH1<2)) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 232 | alarmH2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 233 | alarmUnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 234 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 235 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 236 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 237 | case 2: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 238 | if(taster<=5+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 239 | alarmM1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 240 | alarmUnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 241 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 242 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 243 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 244 | case 3: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 245 | alarmM2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 246 | alarmUnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 247 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 248 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 249 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 250 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 251 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 252 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 253 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 254 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 255 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 256 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 257 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 258 | //----------------------------------------------------------------------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 259 | void PostavljanjeVremenaIDatuma() |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 260 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 261 | int UnosBrojac(0),H1(0),H2(0),M1(0),M2(0),D1(0),D2(0),MO1(0),MO2(0),Y1(0),Y2(0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 262 | char buffstring [22]; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 263 | H1=h/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 264 | H2=h%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 265 | M1=m/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 266 | M2=m%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 267 | D1=dan/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 268 | D2=dan%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 269 | MO1=mjesec/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 270 | MO2=mjesec%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 271 | Y1=godina/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 272 | Y2=godina%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 273 | usedmici=1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 274 | while (1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 275 | lcd.printString("Set date and time:",0,0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 276 | sprintf(buffstring,"%d%d:%d%d",H1,H2,M1,M2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 277 | lcd.printString(buffstring,0,1); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 278 | sprintf(buffstring,"%d%d/%d%d/%d%d",D1,D2,MO1,MO2,Y1,Y2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 279 | lcd.printString(buffstring,0,2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 280 | lcd.refresh(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 281 | if(taster=='C') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 282 | H1=h/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 283 | H2=h%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 284 | M1=m/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 285 | M2=m%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 286 | D1=dan/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 287 | D2=dan%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 288 | MO1=mjesec/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 289 | MO2=mjesec%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 290 | Y1=godina/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 291 | Y2=godina%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 292 | UnosBrojac=0; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 293 | } else if(taster=='D') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 294 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 295 | sat.settime(s, M1*10+M2, H1*10+H2, usedmici, D1*10+D2,M1*10+M2,Y1*10+Y2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 296 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 297 | } else if(taster-'0'>=0 && taster-'0'<=9) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 298 | switch (UnosBrojac) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 299 | case 0: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 300 | if(taster<=2+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 301 | H1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 302 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 303 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 304 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 305 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 306 | case 1: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 307 | if((H1==2 && taster<=3+'0' )|| (H1<2)) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 308 | H2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 309 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 310 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 311 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 312 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 313 | case 2: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 314 | if(taster<=5+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 315 | M1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 316 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 317 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 318 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 319 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 320 | case 3: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 321 | M2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 322 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 323 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 324 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 325 | case 4: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 326 | if(taster<=3+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 327 | D1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 328 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 329 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 330 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 331 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 332 | case 5: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 333 | if((D1==3 && taster<=1+'0' )|| (D1<3)) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 334 | D2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 335 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 336 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 337 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 338 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 339 | case 6: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 340 | if(taster<=1+'0') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 341 | MO1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 342 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 343 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 344 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 345 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 346 | case 7: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 347 | if((MO1==1 && taster<=2+'0' )|| (MO1<1)) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 348 | if(10*D1+D2<=brojdana[10*MO1+taster-'0']) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 349 | MO2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 350 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 351 | } else { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 352 | lcd.printString("Bad date",0,3); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 353 | wait(0.3); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 354 | D1=dan/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 355 | D2=dan%10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 356 | MO1=mjesec/10; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 357 | UnosBrojac=4; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 358 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 359 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 360 | wait (0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 361 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 362 | case 8: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 363 | Y1=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 364 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 365 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 366 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 367 | case 9: |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 368 | Y2=taster-'0'; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 369 | UnosBrojac++; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 370 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 371 | break; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 372 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 373 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 374 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 375 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 376 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 377 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 378 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 379 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 380 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 381 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 382 | //---------------------------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 383 | void Alarm() |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 384 | { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 385 | lcd.printString("TANK TIME",0,0); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 386 | lcd.refresh(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 387 | t.start(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 388 | while (1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 389 | if (t.read()==120 || taster =='D') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 390 | alarmUkljucen=false; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 391 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 392 | return; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 393 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 394 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 395 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 396 | //-------------------------------------------------------------------------------------- |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 397 | int main() { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 398 | //deaktivacija led dioda |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 399 | enable=1; |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 400 | sat.start_clock(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 401 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 402 | //inicijalizacija displeja |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 403 | lcd.init(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 404 | tastatura.attach(&Tastatura,0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 405 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 406 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 407 | while(1) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 408 | sat.gettime(&s,&m,&h, &usedmici, &dan, &mjesec, &godina); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 409 | NacrtajSat(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 410 | if (taster=='*') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 411 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 412 | AlarmPodesavanje(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 413 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 414 | if (taster=='#') { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 415 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 416 | PostavljanjeVremenaIDatuma(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 417 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 418 | if (h==alarmH && m==alarmM && alarmUkljucen) { |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 419 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 420 | Alarm(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 421 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 422 | |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 423 | wait(0.2); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 424 | lcd.clear(); |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 425 | } |
2016US_KemalHalilbeg | 0:5e307f0c3230 | 426 | } |