Hadžić Muharem Mousavi Maedeh

Dependencies:   N5110 PS2 mbed

Committer:
tim010
Date:
Mon Jun 09 10:10:21 2014 +0000
Revision:
0:0a484beeccaf
PAI-Projekat-Tema15-Grupa6-Tim010

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim010 0:0a484beeccaf 1 #include "mbed.h"
tim010 0:0a484beeccaf 2 #include "N5110.h"
tim010 0:0a484beeccaf 3 #include "PS2Mouse.h"
tim010 0:0a484beeccaf 4
tim010 0:0a484beeccaf 5 //N5100 ekran(VCC,SCE,RST,D/C,MOSI,SCLK,LED)
tim010 0:0a484beeccaf 6 N5110 ekran(dp4,dp24,dp23,dp25,dp2,dp6,dp18);
tim010 0:0a484beeccaf 7 //CLKpin, DATApin
tim010 0:0a484beeccaf 8 PS2Mouse mis(dp10, dp11);
tim010 0:0a484beeccaf 9
tim010 0:0a484beeccaf 10 PS2Mouse::mouse_event_t event;
tim010 0:0a484beeccaf 11
tim010 0:0a484beeccaf 12 int x=42,y=24;
tim010 0:0a484beeccaf 13 int x1=x,y1=y;
tim010 0:0a484beeccaf 14 int X,Y;
tim010 0:0a484beeccaf 15 int pomX=0,pomY=0,brojac=0;
tim010 0:0a484beeccaf 16 bool crtaj=false,brisi=true;
tim010 0:0a484beeccaf 17
tim010 0:0a484beeccaf 18 void nacrtaj_pom(int a,int b,int d1,int d2){
tim010 0:0a484beeccaf 19 for(int i=0;i<=d1;i++){
tim010 0:0a484beeccaf 20 for(int j=0;j<=d2;j++){
tim010 0:0a484beeccaf 21 if(i==0||j==0||i==d1||j==d2){
tim010 0:0a484beeccaf 22 ekran.setPixel(a+i,b+j);
tim010 0:0a484beeccaf 23 }
tim010 0:0a484beeccaf 24 }
tim010 0:0a484beeccaf 25 }
tim010 0:0a484beeccaf 26 ekran.refresh();
tim010 0:0a484beeccaf 27 }
tim010 0:0a484beeccaf 28
tim010 0:0a484beeccaf 29 void ocistiEkran(){
tim010 0:0a484beeccaf 30 ekran.clear();
tim010 0:0a484beeccaf 31 crtaj=false;
tim010 0:0a484beeccaf 32 brisi=true;
tim010 0:0a484beeccaf 33 }
tim010 0:0a484beeccaf 34
tim010 0:0a484beeccaf 35 void pomjeranjeMisa(){
tim010 0:0a484beeccaf 36 if(x<0||x>83||y<0||y>47){
tim010 0:0a484beeccaf 37 if(x<0) x=0;
tim010 0:0a484beeccaf 38 if(x>83) x=83;
tim010 0:0a484beeccaf 39 if(y<0) y=0;
tim010 0:0a484beeccaf 40 if(y>47) y=47;
tim010 0:0a484beeccaf 41 return;
tim010 0:0a484beeccaf 42 }
tim010 0:0a484beeccaf 43 char znak=ekran.getPixel(x,y);
tim010 0:0a484beeccaf 44 if(znak!=0){
tim010 0:0a484beeccaf 45 return;
tim010 0:0a484beeccaf 46 }
tim010 0:0a484beeccaf 47 if(brisi){
tim010 0:0a484beeccaf 48 ekran.clearPixel(x1,y1);
tim010 0:0a484beeccaf 49 }
tim010 0:0a484beeccaf 50 brisi=true;
tim010 0:0a484beeccaf 51 ekran.setPixel(x,y);
tim010 0:0a484beeccaf 52 x1=x;
tim010 0:0a484beeccaf 53 y1=y;
tim010 0:0a484beeccaf 54 ekran.refresh();
tim010 0:0a484beeccaf 55 }
tim010 0:0a484beeccaf 56
tim010 0:0a484beeccaf 57
tim010 0:0a484beeccaf 58
tim010 0:0a484beeccaf 59 void oznaci(int a,int b){
tim010 0:0a484beeccaf 60 ekran.setPixel(a,b);
tim010 0:0a484beeccaf 61 ekran.refresh();
tim010 0:0a484beeccaf 62 crtaj=true;
tim010 0:0a484beeccaf 63 brisi=false;
tim010 0:0a484beeccaf 64 }
tim010 0:0a484beeccaf 65
tim010 0:0a484beeccaf 66 void nacrtaj(int a,int b){
tim010 0:0a484beeccaf 67 int d1=a-X;
tim010 0:0a484beeccaf 68 if(d1<0) d1=-d1;
tim010 0:0a484beeccaf 69 int d2=b-Y;
tim010 0:0a484beeccaf 70 if(d2<0) d2=-d2;
tim010 0:0a484beeccaf 71 int k1,k2;
tim010 0:0a484beeccaf 72 if(a<X){
tim010 0:0a484beeccaf 73 k1=a;
tim010 0:0a484beeccaf 74 }
tim010 0:0a484beeccaf 75 else{
tim010 0:0a484beeccaf 76 k1=X;
tim010 0:0a484beeccaf 77 }
tim010 0:0a484beeccaf 78
tim010 0:0a484beeccaf 79 if(b<Y){
tim010 0:0a484beeccaf 80 k2=b;
tim010 0:0a484beeccaf 81 }
tim010 0:0a484beeccaf 82 else{
tim010 0:0a484beeccaf 83 k2=Y;
tim010 0:0a484beeccaf 84 }
tim010 0:0a484beeccaf 85
tim010 0:0a484beeccaf 86 nacrtaj_pom(k1,k2,d1,d2);
tim010 0:0a484beeccaf 87
tim010 0:0a484beeccaf 88 crtaj=false;
tim010 0:0a484beeccaf 89 brisi=false;
tim010 0:0a484beeccaf 90 }
tim010 0:0a484beeccaf 91
tim010 0:0a484beeccaf 92 DigitalOut enable(dp14);
tim010 0:0a484beeccaf 93
tim010 0:0a484beeccaf 94 int main() {
tim010 0:0a484beeccaf 95 enable=1;
tim010 0:0a484beeccaf 96 ekran.init();
tim010 0:0a484beeccaf 97 ekran.setXYAddress(0,0);
tim010 0:0a484beeccaf 98 pomjeranjeMisa();
tim010 0:0a484beeccaf 99 while(1) {
tim010 0:0a484beeccaf 100 if (mis.processing(&event)) {
tim010 0:0a484beeccaf 101 pomX+=event.x;
tim010 0:0a484beeccaf 102 pomY+=event.y;
tim010 0:0a484beeccaf 103 brojac++;
tim010 0:0a484beeccaf 104 if(brojac==3){
tim010 0:0a484beeccaf 105
tim010 0:0a484beeccaf 106 if(pomX>0){
tim010 0:0a484beeccaf 107 x+=1;
tim010 0:0a484beeccaf 108 }
tim010 0:0a484beeccaf 109 else{
tim010 0:0a484beeccaf 110 x-=1;
tim010 0:0a484beeccaf 111 }
tim010 0:0a484beeccaf 112
tim010 0:0a484beeccaf 113 if(pomY>0){
tim010 0:0a484beeccaf 114 y-=1;
tim010 0:0a484beeccaf 115 }
tim010 0:0a484beeccaf 116 else{
tim010 0:0a484beeccaf 117 y+=1;
tim010 0:0a484beeccaf 118 }
tim010 0:0a484beeccaf 119
tim010 0:0a484beeccaf 120 pomjeranjeMisa();
tim010 0:0a484beeccaf 121
tim010 0:0a484beeccaf 122 pomX=pomY=brojac=0;
tim010 0:0a484beeccaf 123 }
tim010 0:0a484beeccaf 124
tim010 0:0a484beeccaf 125 if (event.left){
tim010 0:0a484beeccaf 126 if(!crtaj){
tim010 0:0a484beeccaf 127 X=x;
tim010 0:0a484beeccaf 128 Y=y;
tim010 0:0a484beeccaf 129 oznaci(X,Y);
tim010 0:0a484beeccaf 130 }
tim010 0:0a484beeccaf 131 else{
tim010 0:0a484beeccaf 132 nacrtaj(x,y);
tim010 0:0a484beeccaf 133 }
tim010 0:0a484beeccaf 134 }
tim010 0:0a484beeccaf 135 if (event.right){
tim010 0:0a484beeccaf 136 ocistiEkran();
tim010 0:0a484beeccaf 137 }
tim010 0:0a484beeccaf 138
tim010 0:0a484beeccaf 139 }
tim010 0:0a484beeccaf 140 }
tim010 0:0a484beeccaf 141 }