LV7 Zad01 priprema Sumejja Porca

Dependencies:   N5110 mbed

Committer:
tim008
Date:
Mon Apr 28 10:45:20 2014 +0000
Revision:
0:b7c72ff94dc1
Child:
1:0d0b41d5ac80
priprema

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim008 0:b7c72ff94dc1 1 #include "mbed.h"
tim008 0:b7c72ff94dc1 2 #include "N5110.h"
tim008 0:b7c72ff94dc1 3
tim008 0:b7c72ff94dc1 4 //Analogni ulazi sa dzojstika
tim008 0:b7c72ff94dc1 5 AnalogIn VRx(dp11);
tim008 0:b7c72ff94dc1 6 AnalogIn VRy(dp10);
tim008 0:b7c72ff94dc1 7 //Taster sa dzojstika
tim008 0:b7c72ff94dc1 8 DigitalIn SW(dp9);
tim008 0:b7c72ff94dc1 9
tim008 0:b7c72ff94dc1 10 //Deklaracija LCD objekta
tim008 0:b7c72ff94dc1 11 //N5110 lcd(VCC,SCE,RST,D/C,MOSI,SCLK,LED)
tim008 0:b7c72ff94dc1 12 N5110 lcd(dp4,dp24,dp23,dp25,dp2,dp6,dp18);
tim008 0:b7c72ff94dc1 13
tim008 0:b7c72ff94dc1 14
tim008 0:b7c72ff94dc1 15 //Digitalni izlaz za deaktivaciju LED buffera
tim008 0:b7c72ff94dc1 16 DigitalOut enable(dp14);
tim008 0:b7c72ff94dc1 17
tim008 0:b7c72ff94dc1 18 //koordinate crosshair kursora / na sredini ekrana
tim008 0:b7c72ff94dc1 19 int x1(40), y1(23), x2(41), y2(22), x3(42), y3(23), x4(41), y4(24);
tim008 0:b7c72ff94dc1 20
tim008 0:b7c72ff94dc1 21 //koordinate tacaka dijagonala
tim008 0:b7c72ff94dc1 22 int xd1(-1), yd1(-1), xd2(-1), yd2(-1);
tim008 0:b7c72ff94dc1 23
tim008 0:b7c72ff94dc1 24 //taster za dodavanje tacke/ brisanje svih tacaka
tim008 0:b7c72ff94dc1 25 InterruptIn taster1(dp1);
tim008 0:b7c72ff94dc1 26
tim008 0:b7c72ff94dc1 27 // timer koji mjeri vrijeme izmedju dva tastera
tim008 0:b7c72ff94dc1 28 Timer timer;
tim008 0:b7c72ff94dc1 29
tim008 0:b7c72ff94dc1 30 //funkcija za pravljenje pravougaonika kad vec imamo tacke dijagonale
tim008 0:b7c72ff94dc1 31 void makeRectangle()
tim008 0:b7c72ff94dc1 32 {
tim008 0:b7c72ff94dc1 33 int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
tim008 0:b7c72ff94dc1 34 if( xd1 <= xd2 && yd1 > yd2 )
tim008 0:b7c72ff94dc1 35 {
tim008 0:b7c72ff94dc1 36 Bx = xd2;
tim008 0:b7c72ff94dc1 37 By = yd2;
tim008 0:b7c72ff94dc1 38 Dx = xd1;
tim008 0:b7c72ff94dc1 39 Dy = yd1;
tim008 0:b7c72ff94dc1 40
tim008 0:b7c72ff94dc1 41 Ax = Dx;
tim008 0:b7c72ff94dc1 42 Ay = By;
tim008 0:b7c72ff94dc1 43 Cx = Bx;
tim008 0:b7c72ff94dc1 44 Cy = Dy;
tim008 0:b7c72ff94dc1 45 }
tim008 0:b7c72ff94dc1 46 else if( xd2 <= xd1 && yd2 > yd1 )
tim008 0:b7c72ff94dc1 47 {
tim008 0:b7c72ff94dc1 48 Bx = xd1;
tim008 0:b7c72ff94dc1 49 By = yd1;
tim008 0:b7c72ff94dc1 50 Dx = xd2;
tim008 0:b7c72ff94dc1 51 Dy = yd2;
tim008 0:b7c72ff94dc1 52
tim008 0:b7c72ff94dc1 53 Ax = Dx;
tim008 0:b7c72ff94dc1 54 Ay = By;
tim008 0:b7c72ff94dc1 55 Cx = Bx;
tim008 0:b7c72ff94dc1 56 Cy = Dy;
tim008 0:b7c72ff94dc1 57 }
tim008 0:b7c72ff94dc1 58 else if ( xd1 < xd2 && yd1 <= yd2 )
tim008 0:b7c72ff94dc1 59 {
tim008 0:b7c72ff94dc1 60 Ax = xd1;
tim008 0:b7c72ff94dc1 61 Ay = yd1;
tim008 0:b7c72ff94dc1 62 Cx = xd2;
tim008 0:b7c72ff94dc1 63 Cy = yd2;
tim008 0:b7c72ff94dc1 64
tim008 0:b7c72ff94dc1 65 Bx = Cx;
tim008 0:b7c72ff94dc1 66 By = Ay;
tim008 0:b7c72ff94dc1 67 Dx = Ax;
tim008 0:b7c72ff94dc1 68 Dy = Cy;
tim008 0:b7c72ff94dc1 69 }
tim008 0:b7c72ff94dc1 70 else if ( xd2 < xd1 && yd2 <= yd1 )
tim008 0:b7c72ff94dc1 71 {
tim008 0:b7c72ff94dc1 72 Ax = xd2;
tim008 0:b7c72ff94dc1 73 Ay = yd2;
tim008 0:b7c72ff94dc1 74 Cx = xd1;
tim008 0:b7c72ff94dc1 75 Cy = yd1;
tim008 0:b7c72ff94dc1 76
tim008 0:b7c72ff94dc1 77
tim008 0:b7c72ff94dc1 78 Bx = Cx;
tim008 0:b7c72ff94dc1 79 By = Ay;
tim008 0:b7c72ff94dc1 80 Dx = Ax;
tim008 0:b7c72ff94dc1 81 Dy = Cy;
tim008 0:b7c72ff94dc1 82 }
tim008 0:b7c72ff94dc1 83
tim008 0:b7c72ff94dc1 84 int i, j;
tim008 0:b7c72ff94dc1 85 // crtamo pravougaonik
tim008 0:b7c72ff94dc1 86 for( i = Ay; i <= Dy; i++)
tim008 0:b7c72ff94dc1 87 for( j = Ax; j <= Cx; j++)
tim008 0:b7c72ff94dc1 88 {
tim008 0:b7c72ff94dc1 89 lcd.setPixel(j,i);
tim008 0:b7c72ff94dc1 90 lcd.refresh();
tim008 0:b7c72ff94dc1 91 }
tim008 0:b7c72ff94dc1 92 }
tim008 0:b7c72ff94dc1 93
tim008 0:b7c72ff94dc1 94 // funkcija za dodavanje tacke dijagonale/ pravljenje pravougaonika
tim008 0:b7c72ff94dc1 95 void setPoint()
tim008 0:b7c72ff94dc1 96 {
tim008 0:b7c72ff94dc1 97 if(timer.read() <= 0.001)
tim008 0:b7c72ff94dc1 98 {
tim008 0:b7c72ff94dc1 99 lcd.clear();
tim008 0:b7c72ff94dc1 100 xd1 = -1;
tim008 0:b7c72ff94dc1 101 yd1 = -1;
tim008 0:b7c72ff94dc1 102 xd2 = -1;
tim008 0:b7c72ff94dc1 103 yd2 = -1;
tim008 0:b7c72ff94dc1 104 x1 = 40;
tim008 0:b7c72ff94dc1 105 y1 = 23;
tim008 0:b7c72ff94dc1 106 x2 = 41;
tim008 0:b7c72ff94dc1 107 y2 = 22;
tim008 0:b7c72ff94dc1 108 x3 = 42;
tim008 0:b7c72ff94dc1 109 y3 = 23;
tim008 0:b7c72ff94dc1 110 x4 = 41;
tim008 0:b7c72ff94dc1 111 y4 = 24;
tim008 0:b7c72ff94dc1 112 lcd.setPixel(x1,y1);
tim008 0:b7c72ff94dc1 113 lcd.setPixel(x2,y2);
tim008 0:b7c72ff94dc1 114 lcd.setPixel(x3,y3);
tim008 0:b7c72ff94dc1 115 lcd.setPixel(x4,y4);
tim008 0:b7c72ff94dc1 116 lcd.refresh();
tim008 0:b7c72ff94dc1 117 timer.reset();
tim008 0:b7c72ff94dc1 118 return;
tim008 0:b7c72ff94dc1 119 }
tim008 0:b7c72ff94dc1 120 timer.reset();
tim008 0:b7c72ff94dc1 121 if( xd1 < 0 )
tim008 0:b7c72ff94dc1 122 {
tim008 0:b7c72ff94dc1 123 xd1 = x2;
tim008 0:b7c72ff94dc1 124 yd1 = y1;
tim008 0:b7c72ff94dc1 125 lcd.setPixel(xd1, yd1);
tim008 0:b7c72ff94dc1 126 lcd.refresh();
tim008 0:b7c72ff94dc1 127 }
tim008 0:b7c72ff94dc1 128 else
tim008 0:b7c72ff94dc1 129 {
tim008 0:b7c72ff94dc1 130 xd2 = x2;
tim008 0:b7c72ff94dc1 131 yd2 = y1;
tim008 0:b7c72ff94dc1 132 makeRectangle();
tim008 0:b7c72ff94dc1 133 xd1 = -1;
tim008 0:b7c72ff94dc1 134 yd1 = -1;
tim008 0:b7c72ff94dc1 135 xd2 = -1;
tim008 0:b7c72ff94dc1 136 yd2 = -1;
tim008 0:b7c72ff94dc1 137
tim008 0:b7c72ff94dc1 138 }
tim008 0:b7c72ff94dc1 139 }
tim008 0:b7c72ff94dc1 140
tim008 0:b7c72ff94dc1 141 int main()
tim008 0:b7c72ff94dc1 142 {
tim008 0:b7c72ff94dc1 143 timer.start();
tim008 0:b7c72ff94dc1 144 enable=1;
tim008 0:b7c72ff94dc1 145
tim008 0:b7c72ff94dc1 146 // inicijalizacija displaya
tim008 0:b7c72ff94dc1 147 lcd.init();
tim008 0:b7c72ff94dc1 148
tim008 0:b7c72ff94dc1 149 while(1) {
tim008 0:b7c72ff94dc1 150 if (VRx < 1.0/3.0 && x1 > 0 )
tim008 0:b7c72ff94dc1 151 {
tim008 0:b7c72ff94dc1 152 lcd.clearPixel(x1,y1);
tim008 0:b7c72ff94dc1 153 lcd.clearPixel(x2,y2);
tim008 0:b7c72ff94dc1 154 lcd.clearPixel(x3,y3);
tim008 0:b7c72ff94dc1 155 lcd.clearPixel(x4,y4);
tim008 0:b7c72ff94dc1 156 lcd.refresh();
tim008 0:b7c72ff94dc1 157
tim008 0:b7c72ff94dc1 158 x1--;
tim008 0:b7c72ff94dc1 159 x2--;
tim008 0:b7c72ff94dc1 160 x3--;
tim008 0:b7c72ff94dc1 161 x4--;
tim008 0:b7c72ff94dc1 162
tim008 0:b7c72ff94dc1 163 lcd.setPixel(x1,y1);
tim008 0:b7c72ff94dc1 164 lcd.setPixel(x2,y2);
tim008 0:b7c72ff94dc1 165 lcd.setPixel(x3,y3);
tim008 0:b7c72ff94dc1 166 lcd.setPixel(x4,y4);
tim008 0:b7c72ff94dc1 167 lcd.refresh();
tim008 0:b7c72ff94dc1 168
tim008 0:b7c72ff94dc1 169 }
tim008 0:b7c72ff94dc1 170 else if (VRx > 2.0/3.0 && x3 < 47)
tim008 0:b7c72ff94dc1 171 {
tim008 0:b7c72ff94dc1 172 lcd.clearPixel(x1,y1);
tim008 0:b7c72ff94dc1 173 lcd.clearPixel(x2,y2);
tim008 0:b7c72ff94dc1 174 lcd.clearPixel(x3,y3);
tim008 0:b7c72ff94dc1 175 lcd.clearPixel(x4,y4);
tim008 0:b7c72ff94dc1 176 lcd.refresh();
tim008 0:b7c72ff94dc1 177
tim008 0:b7c72ff94dc1 178 x1++;
tim008 0:b7c72ff94dc1 179 x2++;
tim008 0:b7c72ff94dc1 180 x3++;
tim008 0:b7c72ff94dc1 181 x4++;
tim008 0:b7c72ff94dc1 182
tim008 0:b7c72ff94dc1 183 lcd.setPixel(x1,y1);
tim008 0:b7c72ff94dc1 184 lcd.setPixel(x2,y2);
tim008 0:b7c72ff94dc1 185 lcd.setPixel(x3,y3);
tim008 0:b7c72ff94dc1 186 lcd.setPixel(x4,y4);
tim008 0:b7c72ff94dc1 187 lcd.refresh();
tim008 0:b7c72ff94dc1 188 }
tim008 0:b7c72ff94dc1 189
tim008 0:b7c72ff94dc1 190 if ( VRy < 1.0/3.0 && y2 > 0)
tim008 0:b7c72ff94dc1 191 {
tim008 0:b7c72ff94dc1 192 lcd.clearPixel(x1,y1);
tim008 0:b7c72ff94dc1 193 lcd.clearPixel(x2,y2);
tim008 0:b7c72ff94dc1 194 lcd.clearPixel(x3,y3);
tim008 0:b7c72ff94dc1 195 lcd.clearPixel(x4,y4);
tim008 0:b7c72ff94dc1 196 lcd.refresh();
tim008 0:b7c72ff94dc1 197
tim008 0:b7c72ff94dc1 198 y1--;
tim008 0:b7c72ff94dc1 199 y2--;
tim008 0:b7c72ff94dc1 200 y3--;
tim008 0:b7c72ff94dc1 201 y4--;
tim008 0:b7c72ff94dc1 202
tim008 0:b7c72ff94dc1 203 lcd.setPixel(x1,y1);
tim008 0:b7c72ff94dc1 204 lcd.setPixel(x2,y2);
tim008 0:b7c72ff94dc1 205 lcd.setPixel(x3,y3);
tim008 0:b7c72ff94dc1 206 lcd.setPixel(x4,y4);
tim008 0:b7c72ff94dc1 207 lcd.refresh();
tim008 0:b7c72ff94dc1 208 }
tim008 0:b7c72ff94dc1 209 else if (VRy > 2.0/3.0 && y4 < 83)
tim008 0:b7c72ff94dc1 210 {
tim008 0:b7c72ff94dc1 211 lcd.clearPixel(x1,y1);
tim008 0:b7c72ff94dc1 212 lcd.clearPixel(x2,y2);
tim008 0:b7c72ff94dc1 213 lcd.clearPixel(x3,y3);
tim008 0:b7c72ff94dc1 214 lcd.clearPixel(x4,y4);
tim008 0:b7c72ff94dc1 215 lcd.refresh();
tim008 0:b7c72ff94dc1 216
tim008 0:b7c72ff94dc1 217 y1++;
tim008 0:b7c72ff94dc1 218 y2++;
tim008 0:b7c72ff94dc1 219 y3++;
tim008 0:b7c72ff94dc1 220 y4++;
tim008 0:b7c72ff94dc1 221
tim008 0:b7c72ff94dc1 222 lcd.setPixel(x1,y1);
tim008 0:b7c72ff94dc1 223 lcd.setPixel(x2,y2);
tim008 0:b7c72ff94dc1 224 lcd.setPixel(x3,y3);
tim008 0:b7c72ff94dc1 225 lcd.setPixel(x4,y4);
tim008 0:b7c72ff94dc1 226 lcd.refresh();
tim008 0:b7c72ff94dc1 227
tim008 0:b7c72ff94dc1 228 }
tim008 0:b7c72ff94dc1 229
tim008 0:b7c72ff94dc1 230 wait(0.01);
tim008 0:b7c72ff94dc1 231
tim008 0:b7c72ff94dc1 232 }
tim008 0:b7c72ff94dc1 233 }