tim008 tim008
/
LV07_Zad01_Tim008
Adna Durakovic Sumejja Porca
main.cpp@0:17d69bb0ccdb, 2014-04-28 (annotated)
- Committer:
- tim008
- Date:
- Mon Apr 28 17:44:53 2014 +0000
- Revision:
- 0:17d69bb0ccdb
LV07_Z01_Grupa04;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tim008 | 0:17d69bb0ccdb | 1 | #include "mbed.h" |
tim008 | 0:17d69bb0ccdb | 2 | #include "N5110.h" |
tim008 | 0:17d69bb0ccdb | 3 | |
tim008 | 0:17d69bb0ccdb | 4 | //Analogni ulazi sa dzojstika |
tim008 | 0:17d69bb0ccdb | 5 | AnalogIn VRx(dp11); |
tim008 | 0:17d69bb0ccdb | 6 | AnalogIn VRy(dp10); |
tim008 | 0:17d69bb0ccdb | 7 | //Taster sa dzojstika |
tim008 | 0:17d69bb0ccdb | 8 | DigitalIn SW(dp9); |
tim008 | 0:17d69bb0ccdb | 9 | |
tim008 | 0:17d69bb0ccdb | 10 | //Deklaracija LCD objekta |
tim008 | 0:17d69bb0ccdb | 11 | //N5110 lcd(VCC,SCE,RST,D/C,MOSI,SCLK,LED) |
tim008 | 0:17d69bb0ccdb | 12 | N5110 lcd(dp4,dp24,dp23,dp25,dp2,dp6,dp18); |
tim008 | 0:17d69bb0ccdb | 13 | |
tim008 | 0:17d69bb0ccdb | 14 | |
tim008 | 0:17d69bb0ccdb | 15 | //Digitalni izlaz za deaktivaciju LED buffera |
tim008 | 0:17d69bb0ccdb | 16 | DigitalOut enable(dp14); |
tim008 | 0:17d69bb0ccdb | 17 | |
tim008 | 0:17d69bb0ccdb | 18 | //koordinate crosshair kursora / na sredini ekrana |
tim008 | 0:17d69bb0ccdb | 19 | int x1(40), y1(23), x2(41), y2(22), x3(42), y3(23), x4(41), y4(24); |
tim008 | 0:17d69bb0ccdb | 20 | |
tim008 | 0:17d69bb0ccdb | 21 | //koordinate virtuelnog kursora koji nam govori jesmo li u pravougaoniku |
tim008 | 0:17d69bb0ccdb | 22 | int vx1(-1), vy1(-1), vx2(-1), vy2(-1), vx3(-1), vy3(-1), vx4(-1), vy4(-1); |
tim008 | 0:17d69bb0ccdb | 23 | |
tim008 | 0:17d69bb0ccdb | 24 | //koordinate tacaka dijagonala |
tim008 | 0:17d69bb0ccdb | 25 | int xd1(-1), yd1(-1), xd2(-1), yd2(-1); |
tim008 | 0:17d69bb0ccdb | 26 | |
tim008 | 0:17d69bb0ccdb | 27 | //taster za dodavanje tacke/ brisanje svih tacaka |
tim008 | 0:17d69bb0ccdb | 28 | InterruptIn taster1(dp1); |
tim008 | 0:17d69bb0ccdb | 29 | |
tim008 | 0:17d69bb0ccdb | 30 | // timer koji mjeri vrijeme izmedju dva tastera |
tim008 | 0:17d69bb0ccdb | 31 | Timer timer; |
tim008 | 0:17d69bb0ccdb | 32 | |
tim008 | 0:17d69bb0ccdb | 33 | //funkcija za pravljenje pravougaonika kad vec imamo tacke dijagonale |
tim008 | 0:17d69bb0ccdb | 34 | void makeRectangle() |
tim008 | 0:17d69bb0ccdb | 35 | { |
tim008 | 0:17d69bb0ccdb | 36 | taster1.disable_irq(); |
tim008 | 0:17d69bb0ccdb | 37 | int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy; |
tim008 | 0:17d69bb0ccdb | 38 | if( xd1 < xd2 && yd1 > yd2 ) |
tim008 | 0:17d69bb0ccdb | 39 | { |
tim008 | 0:17d69bb0ccdb | 40 | Bx = xd2; |
tim008 | 0:17d69bb0ccdb | 41 | By = yd2; |
tim008 | 0:17d69bb0ccdb | 42 | Dx = xd1; |
tim008 | 0:17d69bb0ccdb | 43 | Dy = yd1; |
tim008 | 0:17d69bb0ccdb | 44 | |
tim008 | 0:17d69bb0ccdb | 45 | Ax = Dx; |
tim008 | 0:17d69bb0ccdb | 46 | Ay = By; |
tim008 | 0:17d69bb0ccdb | 47 | Cx = Bx; |
tim008 | 0:17d69bb0ccdb | 48 | Cy = Dy; |
tim008 | 0:17d69bb0ccdb | 49 | } |
tim008 | 0:17d69bb0ccdb | 50 | else if( xd2 < xd1 && yd2 > yd1 ) |
tim008 | 0:17d69bb0ccdb | 51 | { |
tim008 | 0:17d69bb0ccdb | 52 | Bx = xd1; |
tim008 | 0:17d69bb0ccdb | 53 | By = yd1; |
tim008 | 0:17d69bb0ccdb | 54 | Dx = xd2; |
tim008 | 0:17d69bb0ccdb | 55 | Dy = yd2; |
tim008 | 0:17d69bb0ccdb | 56 | |
tim008 | 0:17d69bb0ccdb | 57 | Ax = Dx; |
tim008 | 0:17d69bb0ccdb | 58 | Ay = By; |
tim008 | 0:17d69bb0ccdb | 59 | Cx = Bx; |
tim008 | 0:17d69bb0ccdb | 60 | Cy = Dy; |
tim008 | 0:17d69bb0ccdb | 61 | } |
tim008 | 0:17d69bb0ccdb | 62 | else if ( xd1 < xd2 && yd1 < yd2 ) |
tim008 | 0:17d69bb0ccdb | 63 | { |
tim008 | 0:17d69bb0ccdb | 64 | Ax = xd1; |
tim008 | 0:17d69bb0ccdb | 65 | Ay = yd1; |
tim008 | 0:17d69bb0ccdb | 66 | Cx = xd2; |
tim008 | 0:17d69bb0ccdb | 67 | Cy = yd2; |
tim008 | 0:17d69bb0ccdb | 68 | |
tim008 | 0:17d69bb0ccdb | 69 | Bx = Cx; |
tim008 | 0:17d69bb0ccdb | 70 | By = Ay; |
tim008 | 0:17d69bb0ccdb | 71 | Dx = Ax; |
tim008 | 0:17d69bb0ccdb | 72 | Dy = Cy; |
tim008 | 0:17d69bb0ccdb | 73 | } |
tim008 | 0:17d69bb0ccdb | 74 | else if ( xd2 < xd1 && yd2 < yd1 ) |
tim008 | 0:17d69bb0ccdb | 75 | { |
tim008 | 0:17d69bb0ccdb | 76 | Ax = xd2; |
tim008 | 0:17d69bb0ccdb | 77 | Ay = yd2; |
tim008 | 0:17d69bb0ccdb | 78 | Cx = xd1; |
tim008 | 0:17d69bb0ccdb | 79 | Cy = yd1; |
tim008 | 0:17d69bb0ccdb | 80 | |
tim008 | 0:17d69bb0ccdb | 81 | |
tim008 | 0:17d69bb0ccdb | 82 | Bx = Cx; |
tim008 | 0:17d69bb0ccdb | 83 | By = Ay; |
tim008 | 0:17d69bb0ccdb | 84 | Dx = Ax; |
tim008 | 0:17d69bb0ccdb | 85 | Dy = Cy; |
tim008 | 0:17d69bb0ccdb | 86 | } |
tim008 | 0:17d69bb0ccdb | 87 | |
tim008 | 0:17d69bb0ccdb | 88 | int i, j; |
tim008 | 0:17d69bb0ccdb | 89 | // crtamo pravougaonik |
tim008 | 0:17d69bb0ccdb | 90 | for( i = Ay; i <= Dy; i++) |
tim008 | 0:17d69bb0ccdb | 91 | for( j = Ax; j <= Cx; j++) |
tim008 | 0:17d69bb0ccdb | 92 | { |
tim008 | 0:17d69bb0ccdb | 93 | lcd.setPixel(j,i); |
tim008 | 0:17d69bb0ccdb | 94 | } |
tim008 | 0:17d69bb0ccdb | 95 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 96 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 97 | taster1.enable_irq(); |
tim008 | 0:17d69bb0ccdb | 98 | } |
tim008 | 0:17d69bb0ccdb | 99 | |
tim008 | 0:17d69bb0ccdb | 100 | // funkcija za dodavanje tacke dijagonale/ pravljenje pravougaonika |
tim008 | 0:17d69bb0ccdb | 101 | |
tim008 | 0:17d69bb0ccdb | 102 | void setPoint() |
tim008 | 0:17d69bb0ccdb | 103 | { |
tim008 | 0:17d69bb0ccdb | 104 | if( timer.read_ms() < 200) return; |
tim008 | 0:17d69bb0ccdb | 105 | if(timer.read_ms() <= 1000) |
tim008 | 0:17d69bb0ccdb | 106 | { |
tim008 | 0:17d69bb0ccdb | 107 | lcd.clear(); |
tim008 | 0:17d69bb0ccdb | 108 | xd1 = -1; |
tim008 | 0:17d69bb0ccdb | 109 | yd1 = -1; |
tim008 | 0:17d69bb0ccdb | 110 | xd2 = -1; |
tim008 | 0:17d69bb0ccdb | 111 | yd2 = -1; |
tim008 | 0:17d69bb0ccdb | 112 | x1 = 40; |
tim008 | 0:17d69bb0ccdb | 113 | y1 = 23; |
tim008 | 0:17d69bb0ccdb | 114 | x2 = 41; |
tim008 | 0:17d69bb0ccdb | 115 | y2 = 22; |
tim008 | 0:17d69bb0ccdb | 116 | x3 = 42; |
tim008 | 0:17d69bb0ccdb | 117 | y3 = 23; |
tim008 | 0:17d69bb0ccdb | 118 | x4 = 41; |
tim008 | 0:17d69bb0ccdb | 119 | y4 = 24; |
tim008 | 0:17d69bb0ccdb | 120 | vx1 = -1; |
tim008 | 0:17d69bb0ccdb | 121 | vy1 = -1; |
tim008 | 0:17d69bb0ccdb | 122 | vx2 = -1; |
tim008 | 0:17d69bb0ccdb | 123 | vy2 = -1; |
tim008 | 0:17d69bb0ccdb | 124 | vx3 = -1; |
tim008 | 0:17d69bb0ccdb | 125 | vy3 = -1; |
tim008 | 0:17d69bb0ccdb | 126 | vx4 = -1; |
tim008 | 0:17d69bb0ccdb | 127 | vy4 = -1; |
tim008 | 0:17d69bb0ccdb | 128 | lcd.setPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 129 | lcd.setPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 130 | lcd.setPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 131 | lcd.setPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 132 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 133 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 134 | timer.reset(); |
tim008 | 0:17d69bb0ccdb | 135 | return; |
tim008 | 0:17d69bb0ccdb | 136 | } |
tim008 | 0:17d69bb0ccdb | 137 | if( xd1 < 0 ) |
tim008 | 0:17d69bb0ccdb | 138 | { |
tim008 | 0:17d69bb0ccdb | 139 | xd1 = x2; |
tim008 | 0:17d69bb0ccdb | 140 | yd1 = y1; |
tim008 | 0:17d69bb0ccdb | 141 | lcd.setPixel(xd1, yd1); |
tim008 | 0:17d69bb0ccdb | 142 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 143 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 144 | } |
tim008 | 0:17d69bb0ccdb | 145 | else |
tim008 | 0:17d69bb0ccdb | 146 | { |
tim008 | 0:17d69bb0ccdb | 147 | if( x2 != xd1 && y1 != yd1) |
tim008 | 0:17d69bb0ccdb | 148 | { |
tim008 | 0:17d69bb0ccdb | 149 | xd2 = x2; |
tim008 | 0:17d69bb0ccdb | 150 | yd2 = y1; |
tim008 | 0:17d69bb0ccdb | 151 | makeRectangle(); |
tim008 | 0:17d69bb0ccdb | 152 | xd1 = -1; |
tim008 | 0:17d69bb0ccdb | 153 | yd1 = -1; |
tim008 | 0:17d69bb0ccdb | 154 | xd2 = -1; |
tim008 | 0:17d69bb0ccdb | 155 | yd2 = -1; |
tim008 | 0:17d69bb0ccdb | 156 | } |
tim008 | 0:17d69bb0ccdb | 157 | } |
tim008 | 0:17d69bb0ccdb | 158 | timer.reset(); |
tim008 | 0:17d69bb0ccdb | 159 | } |
tim008 | 0:17d69bb0ccdb | 160 | |
tim008 | 0:17d69bb0ccdb | 161 | int main() |
tim008 | 0:17d69bb0ccdb | 162 | { |
tim008 | 0:17d69bb0ccdb | 163 | |
tim008 | 0:17d69bb0ccdb | 164 | timer.start(); |
tim008 | 0:17d69bb0ccdb | 165 | |
tim008 | 0:17d69bb0ccdb | 166 | taster1.rise(&setPoint); |
tim008 | 0:17d69bb0ccdb | 167 | |
tim008 | 0:17d69bb0ccdb | 168 | enable=1; |
tim008 | 0:17d69bb0ccdb | 169 | |
tim008 | 0:17d69bb0ccdb | 170 | // inicijalizacija displaya |
tim008 | 0:17d69bb0ccdb | 171 | lcd.init(); |
tim008 | 0:17d69bb0ccdb | 172 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 173 | |
tim008 | 0:17d69bb0ccdb | 174 | lcd.normalMode(); |
tim008 | 0:17d69bb0ccdb | 175 | |
tim008 | 0:17d69bb0ccdb | 176 | lcd.setPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 177 | lcd.setPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 178 | lcd.setPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 179 | lcd.setPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 180 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 181 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 182 | |
tim008 | 0:17d69bb0ccdb | 183 | while(1) { |
tim008 | 0:17d69bb0ccdb | 184 | if (VRx < 1.0/3.0 && x1 > 0 ) |
tim008 | 0:17d69bb0ccdb | 185 | { |
tim008 | 0:17d69bb0ccdb | 186 | if( vx1 == -1) |
tim008 | 0:17d69bb0ccdb | 187 | lcd.clearPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 188 | if( vx2 == -1) |
tim008 | 0:17d69bb0ccdb | 189 | lcd.clearPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 190 | if( vx3 == -1) |
tim008 | 0:17d69bb0ccdb | 191 | lcd.clearPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 192 | if( vx4 == -1) |
tim008 | 0:17d69bb0ccdb | 193 | lcd.clearPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 194 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 195 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 196 | |
tim008 | 0:17d69bb0ccdb | 197 | x1--; |
tim008 | 0:17d69bb0ccdb | 198 | x2--; |
tim008 | 0:17d69bb0ccdb | 199 | x3--; |
tim008 | 0:17d69bb0ccdb | 200 | x4--; |
tim008 | 0:17d69bb0ccdb | 201 | |
tim008 | 0:17d69bb0ccdb | 202 | if( lcd.getPixel(x1, y1)) |
tim008 | 0:17d69bb0ccdb | 203 | { |
tim008 | 0:17d69bb0ccdb | 204 | vx1 = x1; |
tim008 | 0:17d69bb0ccdb | 205 | vy1 = y1; |
tim008 | 0:17d69bb0ccdb | 206 | } |
tim008 | 0:17d69bb0ccdb | 207 | else |
tim008 | 0:17d69bb0ccdb | 208 | { |
tim008 | 0:17d69bb0ccdb | 209 | vx1 = -1; |
tim008 | 0:17d69bb0ccdb | 210 | vy1 = -1; |
tim008 | 0:17d69bb0ccdb | 211 | } |
tim008 | 0:17d69bb0ccdb | 212 | if( lcd.getPixel(x2, y2)) |
tim008 | 0:17d69bb0ccdb | 213 | { |
tim008 | 0:17d69bb0ccdb | 214 | vx2 = x2; |
tim008 | 0:17d69bb0ccdb | 215 | vy2 = y2; |
tim008 | 0:17d69bb0ccdb | 216 | } |
tim008 | 0:17d69bb0ccdb | 217 | else |
tim008 | 0:17d69bb0ccdb | 218 | { |
tim008 | 0:17d69bb0ccdb | 219 | vx2 = -1; |
tim008 | 0:17d69bb0ccdb | 220 | vy2 = -1; |
tim008 | 0:17d69bb0ccdb | 221 | } |
tim008 | 0:17d69bb0ccdb | 222 | |
tim008 | 0:17d69bb0ccdb | 223 | if( lcd.getPixel(x3, y3)) |
tim008 | 0:17d69bb0ccdb | 224 | { |
tim008 | 0:17d69bb0ccdb | 225 | vx3 = x3; |
tim008 | 0:17d69bb0ccdb | 226 | vy3 = y3; |
tim008 | 0:17d69bb0ccdb | 227 | } |
tim008 | 0:17d69bb0ccdb | 228 | else |
tim008 | 0:17d69bb0ccdb | 229 | { |
tim008 | 0:17d69bb0ccdb | 230 | vx3 = -1; |
tim008 | 0:17d69bb0ccdb | 231 | vy3 = -1; |
tim008 | 0:17d69bb0ccdb | 232 | } |
tim008 | 0:17d69bb0ccdb | 233 | |
tim008 | 0:17d69bb0ccdb | 234 | if( lcd.getPixel(x4, y4)) |
tim008 | 0:17d69bb0ccdb | 235 | { |
tim008 | 0:17d69bb0ccdb | 236 | vx4 = x4; |
tim008 | 0:17d69bb0ccdb | 237 | vy4 = y4; |
tim008 | 0:17d69bb0ccdb | 238 | } |
tim008 | 0:17d69bb0ccdb | 239 | else |
tim008 | 0:17d69bb0ccdb | 240 | { |
tim008 | 0:17d69bb0ccdb | 241 | vx4 = -1; |
tim008 | 0:17d69bb0ccdb | 242 | vy4 = -1; |
tim008 | 0:17d69bb0ccdb | 243 | } |
tim008 | 0:17d69bb0ccdb | 244 | } |
tim008 | 0:17d69bb0ccdb | 245 | else if (VRx > 2.0/3.0 && x3 < 47) |
tim008 | 0:17d69bb0ccdb | 246 | { |
tim008 | 0:17d69bb0ccdb | 247 | if( vx1 == -1) |
tim008 | 0:17d69bb0ccdb | 248 | lcd.clearPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 249 | if( vx2 == -1) |
tim008 | 0:17d69bb0ccdb | 250 | lcd.clearPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 251 | if( vx3 == -1) |
tim008 | 0:17d69bb0ccdb | 252 | lcd.clearPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 253 | if( vx4 == -1) |
tim008 | 0:17d69bb0ccdb | 254 | lcd.clearPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 255 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 256 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 257 | x1++; |
tim008 | 0:17d69bb0ccdb | 258 | x2++; |
tim008 | 0:17d69bb0ccdb | 259 | x3++; |
tim008 | 0:17d69bb0ccdb | 260 | x4++; |
tim008 | 0:17d69bb0ccdb | 261 | |
tim008 | 0:17d69bb0ccdb | 262 | if( lcd.getPixel(x1, y1)) |
tim008 | 0:17d69bb0ccdb | 263 | { |
tim008 | 0:17d69bb0ccdb | 264 | vx1 = x1; |
tim008 | 0:17d69bb0ccdb | 265 | vy1 = y1; |
tim008 | 0:17d69bb0ccdb | 266 | } |
tim008 | 0:17d69bb0ccdb | 267 | else |
tim008 | 0:17d69bb0ccdb | 268 | { |
tim008 | 0:17d69bb0ccdb | 269 | vx1 = -1; |
tim008 | 0:17d69bb0ccdb | 270 | vy1 = -1; |
tim008 | 0:17d69bb0ccdb | 271 | } |
tim008 | 0:17d69bb0ccdb | 272 | if( lcd.getPixel(x2, y2)) |
tim008 | 0:17d69bb0ccdb | 273 | { |
tim008 | 0:17d69bb0ccdb | 274 | vx2 = x2; |
tim008 | 0:17d69bb0ccdb | 275 | vy2 = y2; |
tim008 | 0:17d69bb0ccdb | 276 | } |
tim008 | 0:17d69bb0ccdb | 277 | else |
tim008 | 0:17d69bb0ccdb | 278 | { |
tim008 | 0:17d69bb0ccdb | 279 | vx2 = -1; |
tim008 | 0:17d69bb0ccdb | 280 | vy2 = -1; |
tim008 | 0:17d69bb0ccdb | 281 | } |
tim008 | 0:17d69bb0ccdb | 282 | |
tim008 | 0:17d69bb0ccdb | 283 | if( lcd.getPixel(x3, y3)) |
tim008 | 0:17d69bb0ccdb | 284 | { |
tim008 | 0:17d69bb0ccdb | 285 | vx3 = x3; |
tim008 | 0:17d69bb0ccdb | 286 | vy3 = y3; |
tim008 | 0:17d69bb0ccdb | 287 | } |
tim008 | 0:17d69bb0ccdb | 288 | else |
tim008 | 0:17d69bb0ccdb | 289 | { |
tim008 | 0:17d69bb0ccdb | 290 | vx3 = -1; |
tim008 | 0:17d69bb0ccdb | 291 | vy3 = -1; |
tim008 | 0:17d69bb0ccdb | 292 | } |
tim008 | 0:17d69bb0ccdb | 293 | |
tim008 | 0:17d69bb0ccdb | 294 | if( lcd.getPixel(x4, y4)) |
tim008 | 0:17d69bb0ccdb | 295 | { |
tim008 | 0:17d69bb0ccdb | 296 | vx4 = x4; |
tim008 | 0:17d69bb0ccdb | 297 | vy4 = y4; |
tim008 | 0:17d69bb0ccdb | 298 | } |
tim008 | 0:17d69bb0ccdb | 299 | else |
tim008 | 0:17d69bb0ccdb | 300 | { |
tim008 | 0:17d69bb0ccdb | 301 | vx4 = -1; |
tim008 | 0:17d69bb0ccdb | 302 | vy4 = -1; |
tim008 | 0:17d69bb0ccdb | 303 | } |
tim008 | 0:17d69bb0ccdb | 304 | } |
tim008 | 0:17d69bb0ccdb | 305 | |
tim008 | 0:17d69bb0ccdb | 306 | if ( VRy < 1.0/3.0 && y2 > 0) |
tim008 | 0:17d69bb0ccdb | 307 | { |
tim008 | 0:17d69bb0ccdb | 308 | if( vx1 == -1) |
tim008 | 0:17d69bb0ccdb | 309 | lcd.clearPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 310 | if( vx2 == -1) |
tim008 | 0:17d69bb0ccdb | 311 | lcd.clearPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 312 | if( vx3 == -1) |
tim008 | 0:17d69bb0ccdb | 313 | lcd.clearPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 314 | if( vx4 == -1) |
tim008 | 0:17d69bb0ccdb | 315 | lcd.clearPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 316 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 317 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 318 | |
tim008 | 0:17d69bb0ccdb | 319 | y1--; |
tim008 | 0:17d69bb0ccdb | 320 | y2--; |
tim008 | 0:17d69bb0ccdb | 321 | y3--; |
tim008 | 0:17d69bb0ccdb | 322 | y4--; |
tim008 | 0:17d69bb0ccdb | 323 | |
tim008 | 0:17d69bb0ccdb | 324 | if( lcd.getPixel(x1, y1)) |
tim008 | 0:17d69bb0ccdb | 325 | { |
tim008 | 0:17d69bb0ccdb | 326 | vx1 = x1; |
tim008 | 0:17d69bb0ccdb | 327 | vy1 = y1; |
tim008 | 0:17d69bb0ccdb | 328 | } |
tim008 | 0:17d69bb0ccdb | 329 | else |
tim008 | 0:17d69bb0ccdb | 330 | { |
tim008 | 0:17d69bb0ccdb | 331 | vx1 = -1; |
tim008 | 0:17d69bb0ccdb | 332 | vy1 = -1; |
tim008 | 0:17d69bb0ccdb | 333 | } |
tim008 | 0:17d69bb0ccdb | 334 | if( lcd.getPixel(x2, y2)) |
tim008 | 0:17d69bb0ccdb | 335 | { |
tim008 | 0:17d69bb0ccdb | 336 | vx2 = x2; |
tim008 | 0:17d69bb0ccdb | 337 | vy2 = y2; |
tim008 | 0:17d69bb0ccdb | 338 | } |
tim008 | 0:17d69bb0ccdb | 339 | else |
tim008 | 0:17d69bb0ccdb | 340 | { |
tim008 | 0:17d69bb0ccdb | 341 | vx2 = -1; |
tim008 | 0:17d69bb0ccdb | 342 | vy2 = -1; |
tim008 | 0:17d69bb0ccdb | 343 | } |
tim008 | 0:17d69bb0ccdb | 344 | |
tim008 | 0:17d69bb0ccdb | 345 | if( lcd.getPixel(x3, y3)) |
tim008 | 0:17d69bb0ccdb | 346 | { |
tim008 | 0:17d69bb0ccdb | 347 | vx3 = x3; |
tim008 | 0:17d69bb0ccdb | 348 | vy3 = y3; |
tim008 | 0:17d69bb0ccdb | 349 | } |
tim008 | 0:17d69bb0ccdb | 350 | else |
tim008 | 0:17d69bb0ccdb | 351 | { |
tim008 | 0:17d69bb0ccdb | 352 | vx3 = -1; |
tim008 | 0:17d69bb0ccdb | 353 | vy3 = -1; |
tim008 | 0:17d69bb0ccdb | 354 | } |
tim008 | 0:17d69bb0ccdb | 355 | |
tim008 | 0:17d69bb0ccdb | 356 | if( lcd.getPixel(x4, y4)) |
tim008 | 0:17d69bb0ccdb | 357 | { |
tim008 | 0:17d69bb0ccdb | 358 | vx4 = x4; |
tim008 | 0:17d69bb0ccdb | 359 | vy4 = y4; |
tim008 | 0:17d69bb0ccdb | 360 | } |
tim008 | 0:17d69bb0ccdb | 361 | else |
tim008 | 0:17d69bb0ccdb | 362 | { |
tim008 | 0:17d69bb0ccdb | 363 | vx4 = -1; |
tim008 | 0:17d69bb0ccdb | 364 | vy4 = -1; |
tim008 | 0:17d69bb0ccdb | 365 | } |
tim008 | 0:17d69bb0ccdb | 366 | } |
tim008 | 0:17d69bb0ccdb | 367 | else if (VRy > 2.0/3.0 && y4 < 83) |
tim008 | 0:17d69bb0ccdb | 368 | { |
tim008 | 0:17d69bb0ccdb | 369 | if( vx1 == -1) |
tim008 | 0:17d69bb0ccdb | 370 | lcd.clearPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 371 | if( vx2 == -1) |
tim008 | 0:17d69bb0ccdb | 372 | lcd.clearPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 373 | if( vx3 == -1) |
tim008 | 0:17d69bb0ccdb | 374 | lcd.clearPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 375 | if( vx4 == -1) |
tim008 | 0:17d69bb0ccdb | 376 | lcd.clearPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 377 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 378 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 379 | |
tim008 | 0:17d69bb0ccdb | 380 | y1++; |
tim008 | 0:17d69bb0ccdb | 381 | y2++; |
tim008 | 0:17d69bb0ccdb | 382 | y3++; |
tim008 | 0:17d69bb0ccdb | 383 | y4++; |
tim008 | 0:17d69bb0ccdb | 384 | |
tim008 | 0:17d69bb0ccdb | 385 | if( lcd.getPixel(x1, y1)) |
tim008 | 0:17d69bb0ccdb | 386 | { |
tim008 | 0:17d69bb0ccdb | 387 | vx1 = x1; |
tim008 | 0:17d69bb0ccdb | 388 | vy1 = y1; |
tim008 | 0:17d69bb0ccdb | 389 | } |
tim008 | 0:17d69bb0ccdb | 390 | else |
tim008 | 0:17d69bb0ccdb | 391 | { |
tim008 | 0:17d69bb0ccdb | 392 | vx1 = -1; |
tim008 | 0:17d69bb0ccdb | 393 | vy1 = -1; |
tim008 | 0:17d69bb0ccdb | 394 | } |
tim008 | 0:17d69bb0ccdb | 395 | if( lcd.getPixel(x2, y2)) |
tim008 | 0:17d69bb0ccdb | 396 | { |
tim008 | 0:17d69bb0ccdb | 397 | vx2 = x2; |
tim008 | 0:17d69bb0ccdb | 398 | vy2 = y2; |
tim008 | 0:17d69bb0ccdb | 399 | } |
tim008 | 0:17d69bb0ccdb | 400 | else |
tim008 | 0:17d69bb0ccdb | 401 | { |
tim008 | 0:17d69bb0ccdb | 402 | vx2 = -1; |
tim008 | 0:17d69bb0ccdb | 403 | vy2 = -1; |
tim008 | 0:17d69bb0ccdb | 404 | } |
tim008 | 0:17d69bb0ccdb | 405 | |
tim008 | 0:17d69bb0ccdb | 406 | if( lcd.getPixel(x3, y3)) |
tim008 | 0:17d69bb0ccdb | 407 | { |
tim008 | 0:17d69bb0ccdb | 408 | vx3 = x3; |
tim008 | 0:17d69bb0ccdb | 409 | vy3 = y3; |
tim008 | 0:17d69bb0ccdb | 410 | } |
tim008 | 0:17d69bb0ccdb | 411 | else |
tim008 | 0:17d69bb0ccdb | 412 | { |
tim008 | 0:17d69bb0ccdb | 413 | vx3 = -1; |
tim008 | 0:17d69bb0ccdb | 414 | vy3 = -1; |
tim008 | 0:17d69bb0ccdb | 415 | } |
tim008 | 0:17d69bb0ccdb | 416 | |
tim008 | 0:17d69bb0ccdb | 417 | if( lcd.getPixel(x4, y4)) |
tim008 | 0:17d69bb0ccdb | 418 | { |
tim008 | 0:17d69bb0ccdb | 419 | vx4 = x4; |
tim008 | 0:17d69bb0ccdb | 420 | vy4 = y4; |
tim008 | 0:17d69bb0ccdb | 421 | } |
tim008 | 0:17d69bb0ccdb | 422 | else |
tim008 | 0:17d69bb0ccdb | 423 | { |
tim008 | 0:17d69bb0ccdb | 424 | vx4 = -1; |
tim008 | 0:17d69bb0ccdb | 425 | vy4 = -1; |
tim008 | 0:17d69bb0ccdb | 426 | } |
tim008 | 0:17d69bb0ccdb | 427 | |
tim008 | 0:17d69bb0ccdb | 428 | } |
tim008 | 0:17d69bb0ccdb | 429 | |
tim008 | 0:17d69bb0ccdb | 430 | |
tim008 | 0:17d69bb0ccdb | 431 | lcd.setPixel(x1,y1); |
tim008 | 0:17d69bb0ccdb | 432 | lcd.setPixel(x2,y2); |
tim008 | 0:17d69bb0ccdb | 433 | lcd.setPixel(x3,y3); |
tim008 | 0:17d69bb0ccdb | 434 | lcd.setPixel(x4,y4); |
tim008 | 0:17d69bb0ccdb | 435 | lcd.refresh(); |
tim008 | 0:17d69bb0ccdb | 436 | lcd.setXYAddress(0,0); |
tim008 | 0:17d69bb0ccdb | 437 | |
tim008 | 0:17d69bb0ccdb | 438 | wait(0.01); |
tim008 | 0:17d69bb0ccdb | 439 | |
tim008 | 0:17d69bb0ccdb | 440 | } |
tim008 | 0:17d69bb0ccdb | 441 | } |