![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Adna Durakovic Sumejja Porca
Revision 0:17d69bb0ccdb, committed 2014-04-28
- Comitter:
- tim008
- Date:
- Mon Apr 28 17:44:53 2014 +0000
- Commit message:
- LV07_Z01_Grupa04;
Changed in this revision
diff -r 000000000000 -r 17d69bb0ccdb N5110.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/N5110.lib Mon Apr 28 17:44:53 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/eencae/code/N5110/#adb79338d40f
diff -r 000000000000 -r 17d69bb0ccdb main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Apr 28 17:44:53 2014 +0000 @@ -0,0 +1,441 @@ +#include "mbed.h" +#include "N5110.h" + +//Analogni ulazi sa dzojstika +AnalogIn VRx(dp11); +AnalogIn VRy(dp10); +//Taster sa dzojstika +DigitalIn SW(dp9); + +//Deklaracija LCD objekta +//N5110 lcd(VCC,SCE,RST,D/C,MOSI,SCLK,LED) +N5110 lcd(dp4,dp24,dp23,dp25,dp2,dp6,dp18); + + +//Digitalni izlaz za deaktivaciju LED buffera +DigitalOut enable(dp14); + +//koordinate crosshair kursora / na sredini ekrana +int x1(40), y1(23), x2(41), y2(22), x3(42), y3(23), x4(41), y4(24); + +//koordinate virtuelnog kursora koji nam govori jesmo li u pravougaoniku + int vx1(-1), vy1(-1), vx2(-1), vy2(-1), vx3(-1), vy3(-1), vx4(-1), vy4(-1); + +//koordinate tacaka dijagonala +int xd1(-1), yd1(-1), xd2(-1), yd2(-1); + +//taster za dodavanje tacke/ brisanje svih tacaka +InterruptIn taster1(dp1); + +// timer koji mjeri vrijeme izmedju dva tastera +Timer timer; + +//funkcija za pravljenje pravougaonika kad vec imamo tacke dijagonale +void makeRectangle() +{ + taster1.disable_irq(); + int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy; + if( xd1 < xd2 && yd1 > yd2 ) + { + Bx = xd2; + By = yd2; + Dx = xd1; + Dy = yd1; + + Ax = Dx; + Ay = By; + Cx = Bx; + Cy = Dy; + } + else if( xd2 < xd1 && yd2 > yd1 ) + { + Bx = xd1; + By = yd1; + Dx = xd2; + Dy = yd2; + + Ax = Dx; + Ay = By; + Cx = Bx; + Cy = Dy; + } + else if ( xd1 < xd2 && yd1 < yd2 ) + { + Ax = xd1; + Ay = yd1; + Cx = xd2; + Cy = yd2; + + Bx = Cx; + By = Ay; + Dx = Ax; + Dy = Cy; + } + else if ( xd2 < xd1 && yd2 < yd1 ) + { + Ax = xd2; + Ay = yd2; + Cx = xd1; + Cy = yd1; + + + Bx = Cx; + By = Ay; + Dx = Ax; + Dy = Cy; + } + + int i, j; + // crtamo pravougaonik + for( i = Ay; i <= Dy; i++) + for( j = Ax; j <= Cx; j++) + { + lcd.setPixel(j,i); + } + lcd.refresh(); + lcd.setXYAddress(0,0); + taster1.enable_irq(); +} + +// funkcija za dodavanje tacke dijagonale/ pravljenje pravougaonika + +void setPoint() +{ + if( timer.read_ms() < 200) return; + if(timer.read_ms() <= 1000) + { + lcd.clear(); + xd1 = -1; + yd1 = -1; + xd2 = -1; + yd2 = -1; + x1 = 40; + y1 = 23; + x2 = 41; + y2 = 22; + x3 = 42; + y3 = 23; + x4 = 41; + y4 = 24; + vx1 = -1; + vy1 = -1; + vx2 = -1; + vy2 = -1; + vx3 = -1; + vy3 = -1; + vx4 = -1; + vy4 = -1; + lcd.setPixel(x1,y1); + lcd.setPixel(x2,y2); + lcd.setPixel(x3,y3); + lcd.setPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + timer.reset(); + return; + } + if( xd1 < 0 ) + { + xd1 = x2; + yd1 = y1; + lcd.setPixel(xd1, yd1); + lcd.refresh(); + lcd.setXYAddress(0,0); + } + else + { + if( x2 != xd1 && y1 != yd1) + { + xd2 = x2; + yd2 = y1; + makeRectangle(); + xd1 = -1; + yd1 = -1; + xd2 = -1; + yd2 = -1; + } + } + timer.reset(); + } + +int main() +{ + + timer.start(); + + taster1.rise(&setPoint); + + enable=1; + + // inicijalizacija displaya + lcd.init(); + lcd.setXYAddress(0,0); + + lcd.normalMode(); + + lcd.setPixel(x1,y1); + lcd.setPixel(x2,y2); + lcd.setPixel(x3,y3); + lcd.setPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + + while(1) { + if (VRx < 1.0/3.0 && x1 > 0 ) + { + if( vx1 == -1) + lcd.clearPixel(x1,y1); + if( vx2 == -1) + lcd.clearPixel(x2,y2); + if( vx3 == -1) + lcd.clearPixel(x3,y3); + if( vx4 == -1) + lcd.clearPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + + x1--; + x2--; + x3--; + x4--; + + if( lcd.getPixel(x1, y1)) + { + vx1 = x1; + vy1 = y1; + } + else + { + vx1 = -1; + vy1 = -1; + } + if( lcd.getPixel(x2, y2)) + { + vx2 = x2; + vy2 = y2; + } + else + { + vx2 = -1; + vy2 = -1; + } + + if( lcd.getPixel(x3, y3)) + { + vx3 = x3; + vy3 = y3; + } + else + { + vx3 = -1; + vy3 = -1; + } + + if( lcd.getPixel(x4, y4)) + { + vx4 = x4; + vy4 = y4; + } + else + { + vx4 = -1; + vy4 = -1; + } + } + else if (VRx > 2.0/3.0 && x3 < 47) + { + if( vx1 == -1) + lcd.clearPixel(x1,y1); + if( vx2 == -1) + lcd.clearPixel(x2,y2); + if( vx3 == -1) + lcd.clearPixel(x3,y3); + if( vx4 == -1) + lcd.clearPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + x1++; + x2++; + x3++; + x4++; + + if( lcd.getPixel(x1, y1)) + { + vx1 = x1; + vy1 = y1; + } + else + { + vx1 = -1; + vy1 = -1; + } + if( lcd.getPixel(x2, y2)) + { + vx2 = x2; + vy2 = y2; + } + else + { + vx2 = -1; + vy2 = -1; + } + + if( lcd.getPixel(x3, y3)) + { + vx3 = x3; + vy3 = y3; + } + else + { + vx3 = -1; + vy3 = -1; + } + + if( lcd.getPixel(x4, y4)) + { + vx4 = x4; + vy4 = y4; + } + else + { + vx4 = -1; + vy4 = -1; + } + } + + if ( VRy < 1.0/3.0 && y2 > 0) + { + if( vx1 == -1) + lcd.clearPixel(x1,y1); + if( vx2 == -1) + lcd.clearPixel(x2,y2); + if( vx3 == -1) + lcd.clearPixel(x3,y3); + if( vx4 == -1) + lcd.clearPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + + y1--; + y2--; + y3--; + y4--; + + if( lcd.getPixel(x1, y1)) + { + vx1 = x1; + vy1 = y1; + } + else + { + vx1 = -1; + vy1 = -1; + } + if( lcd.getPixel(x2, y2)) + { + vx2 = x2; + vy2 = y2; + } + else + { + vx2 = -1; + vy2 = -1; + } + + if( lcd.getPixel(x3, y3)) + { + vx3 = x3; + vy3 = y3; + } + else + { + vx3 = -1; + vy3 = -1; + } + + if( lcd.getPixel(x4, y4)) + { + vx4 = x4; + vy4 = y4; + } + else + { + vx4 = -1; + vy4 = -1; + } + } + else if (VRy > 2.0/3.0 && y4 < 83) + { + if( vx1 == -1) + lcd.clearPixel(x1,y1); + if( vx2 == -1) + lcd.clearPixel(x2,y2); + if( vx3 == -1) + lcd.clearPixel(x3,y3); + if( vx4 == -1) + lcd.clearPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + + y1++; + y2++; + y3++; + y4++; + + if( lcd.getPixel(x1, y1)) + { + vx1 = x1; + vy1 = y1; + } + else + { + vx1 = -1; + vy1 = -1; + } + if( lcd.getPixel(x2, y2)) + { + vx2 = x2; + vy2 = y2; + } + else + { + vx2 = -1; + vy2 = -1; + } + + if( lcd.getPixel(x3, y3)) + { + vx3 = x3; + vy3 = y3; + } + else + { + vx3 = -1; + vy3 = -1; + } + + if( lcd.getPixel(x4, y4)) + { + vx4 = x4; + vy4 = y4; + } + else + { + vx4 = -1; + vy4 = -1; + } + + } + + + lcd.setPixel(x1,y1); + lcd.setPixel(x2,y2); + lcd.setPixel(x3,y3); + lcd.setPixel(x4,y4); + lcd.refresh(); + lcd.setXYAddress(0,0); + + wait(0.01); + + } +} \ No newline at end of file
diff -r 000000000000 -r 17d69bb0ccdb mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Apr 28 17:44:53 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/6473597d706e \ No newline at end of file