tim008 tim008
/
Tim008_EditorBitmape
Haris Šemić, Emina Šarić
Diff: main.cpp
- Revision:
- 1:441a9c43ffda
- Parent:
- 0:24887104b8f0
- Child:
- 2:f923d0ef12ec
--- a/main.cpp Thu May 29 16:08:42 2014 +0000 +++ b/main.cpp Thu Jun 05 14:13:17 2014 +0000 @@ -5,21 +5,112 @@ Serial pc(USBTX, USBRX); N5110 displej(dp4,dp24,dp23,dp25,dp2,dp6,dp18); +AnalogIn VRx(dp11); +AnalogIn VRy(dp10); + +DigitalIn taster1(dp1); +DigitalIn taster2(dp2); + +DigitalIn SW(dp9); +DigitalOut enable(dp14); + +char detektirajPozadinu(int x, int y) { + if(x>83 || x<0 || y>47 || y<0) return 'x'; + int brRubnih(0), brCrnih(0); + unsigned char gore,dole,lijevo,desno; + if(x == 0) lijevo = 'x'; else lijevo = displej.getPixel(x-1,y); + if(x == 83) desno = 'x'; else desno = displej.getPixel(x+1,y); + if(y == 0) dole = 'x'; else dole = displej.getPixel(x,y-1); + if(y == 47) gore = 'x'; else gore = displej.getPixel(x,y+1); + if(lijevo == '0') brCrnih++; else if(lijevo == 'x') brRubnih++; + if(desno == '0') brCrnih++; else if(desno == 'x') brRubnih++; + if(gore == '0') brCrnih++; else if(gore == 'x') brRubnih++; + if(dole == '0') brCrnih++; else if(dole == 'x') brRubnih++; + int brBijelih(4-brCrnih-brRubnih); + if(brBijelih < brCrnih) return 'c'; + return 'b'; +} + +void postaviKursor(int x, int y) { + for(int i(1);i<5;i++) { + char pozadina(detektirajPozadinu(x+i, y)); + if(pozadina == 'b') + displej.setPixel(x+i,y); + else if(pozadina == 'c') displej.clearPixel(x+i,y); + pozadina=detektirajPozadinu(x, y+i); + if(pozadina == 'b') + displej.setPixel(x,y+i); + else if(pozadina == 'c') displej.clearPixel(x,y+i); + pozadina=detektirajPozadinu(x-i, y); + if(pozadina == 'b') + displej.setPixel(x-i,y); + else if(pozadina == 'c') displej.clearPixel(x-i,y); + pozadina=detektirajPozadinu(x, y-i); + if(pozadina == 'b') + displej.setPixel(x,y-i); + else if(pozadina == 'c') displej.clearPixel(x,y-i); + } +} + int main() { - displej.init(); + enable=1; + SW.mode(PullUp); + displej.init(); + displej.setXYAddress(0,0); + int x(0),y(0); pc.baud(115200); while(1) { - for(int j=0;j<84;j++) { - for(int i=0;i<48;i++) { - - if(pc.getc()=='1') { - displej.setXYAddress(0,0); - displej.setPixel(j,i); - + for(int i=0; i<84; i++) { + for(int j=0; j<48; j++) { + if(pc.getc()=='1') { + displej.setXYAddress(0,0); + displej.setPixel(i,j); } } } + + if(VRx<1.0/3.0) { + if (x>0) { + x--; + } + } + + else if (VRx>2.0/3.0) { + if(x<83) { + x++; + } + } + + if (VRy<1.0/3.0) { + if(y>0) { + y--; + } + } + + else if (VRy>2.0/3.0) { + if(y<47) { + y++; + } + } + + //saranje + postaviKursor(x,y); + if(taster1==1) { + if(displej.getPixel(x,y) == '0') + displej.setPixel(x,y); + else displej.clearPixel(x,y); + } + + //prenos na racunar + if(pc.getc() == 'x') { + for(int i=0; i<84; i++) { + for(int j=0; j<48; j++) { + if(displej.getPixel(i, j) == '0') + pc.putc('0'); + else pc.putc('1'); + } + } + } displej.refresh(); - } -} +} \ No newline at end of file