haris semic haris spahic

Dependencies:   N5110 mbed

Committer:
tim004
Date:
Thu Apr 24 16:03:04 2014 +0000
Revision:
0:c6ee7bb88fed
LV7-zad1-tim004-grupa6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim004 0:c6ee7bb88fed 1 #include "mbed.h"
tim004 0:c6ee7bb88fed 2 #include "N5110.h"
tim004 0:c6ee7bb88fed 3 #include "math.h"
tim004 0:c6ee7bb88fed 4
tim004 0:c6ee7bb88fed 5 #define MAXWIDTH 84
tim004 0:c6ee7bb88fed 6 #define MAXHEIGHT 48
tim004 0:c6ee7bb88fed 7
tim004 0:c6ee7bb88fed 8 Timer deb;
tim004 0:c6ee7bb88fed 9 DigitalOut enable(dp14);
tim004 0:c6ee7bb88fed 10 InterruptIn taster(dp1);
tim004 0:c6ee7bb88fed 11 int X=0;int Y=0;
tim004 0:c6ee7bb88fed 12 int xpoc=90,ypoc=90,x,y;
tim004 0:c6ee7bb88fed 13 AnalogIn VRx(dp11);
tim004 0:c6ee7bb88fed 14 AnalogIn VRy(dp10);
tim004 0:c6ee7bb88fed 15 DigitalIn SW(dp9);
tim004 0:c6ee7bb88fed 16 DigitalIn mytaster (dp1);
tim004 0:c6ee7bb88fed 17
tim004 0:c6ee7bb88fed 18 N5110 lcd (dp4, dp24, dp23, dp25, dp2, dp6, dp18);
tim004 0:c6ee7bb88fed 19
tim004 0:c6ee7bb88fed 20 void setCursor (int x, int y)
tim004 0:c6ee7bb88fed 21 {
tim004 0:c6ee7bb88fed 22 for (int i=x; i<=x+2; i++)
tim004 0:c6ee7bb88fed 23 {
tim004 0:c6ee7bb88fed 24 for (int j=y; j<=y+2; j++)
tim004 0:c6ee7bb88fed 25 {
tim004 0:c6ee7bb88fed 26 lcd.setPixel(i, j);
tim004 0:c6ee7bb88fed 27 lcd.refresh();
tim004 0:c6ee7bb88fed 28 }
tim004 0:c6ee7bb88fed 29 }
tim004 0:c6ee7bb88fed 30 }
tim004 0:c6ee7bb88fed 31
tim004 0:c6ee7bb88fed 32 void obrisi (int x, int y)
tim004 0:c6ee7bb88fed 33 {
tim004 0:c6ee7bb88fed 34 for (int i=x; i<=x+2; i++)
tim004 0:c6ee7bb88fed 35 {
tim004 0:c6ee7bb88fed 36 for (int j=y; j<=y+2; j++)
tim004 0:c6ee7bb88fed 37 {
tim004 0:c6ee7bb88fed 38 lcd.clearPixel(i, j);
tim004 0:c6ee7bb88fed 39 lcd.refresh();
tim004 0:c6ee7bb88fed 40 }
tim004 0:c6ee7bb88fed 41 }
tim004 0:c6ee7bb88fed 42 }
tim004 0:c6ee7bb88fed 43
tim004 0:c6ee7bb88fed 44 void pomjeriDesno (int &x, int &y)
tim004 0:c6ee7bb88fed 45 {
tim004 0:c6ee7bb88fed 46 if (x>75)
tim004 0:c6ee7bb88fed 47 {
tim004 0:c6ee7bb88fed 48 obrisi(x, y);
tim004 0:c6ee7bb88fed 49 x=0;
tim004 0:c6ee7bb88fed 50
tim004 0:c6ee7bb88fed 51 setCursor(x, y);
tim004 0:c6ee7bb88fed 52 }
tim004 0:c6ee7bb88fed 53 else {
tim004 0:c6ee7bb88fed 54 obrisi(x, y);
tim004 0:c6ee7bb88fed 55 x=x+1;
tim004 0:c6ee7bb88fed 56 setCursor(x, y);
tim004 0:c6ee7bb88fed 57 }
tim004 0:c6ee7bb88fed 58 }
tim004 0:c6ee7bb88fed 59
tim004 0:c6ee7bb88fed 60 void pomjeriLijevo (int &x, int &y)
tim004 0:c6ee7bb88fed 61 {
tim004 0:c6ee7bb88fed 62 if (x<5)
tim004 0:c6ee7bb88fed 63 {
tim004 0:c6ee7bb88fed 64 obrisi(x, y);
tim004 0:c6ee7bb88fed 65 x=75;
tim004 0:c6ee7bb88fed 66 setCursor(x, y);
tim004 0:c6ee7bb88fed 67 }
tim004 0:c6ee7bb88fed 68 else {
tim004 0:c6ee7bb88fed 69 obrisi(x, y);
tim004 0:c6ee7bb88fed 70 x=x-1;
tim004 0:c6ee7bb88fed 71 setCursor(x, y);
tim004 0:c6ee7bb88fed 72 }
tim004 0:c6ee7bb88fed 73 }
tim004 0:c6ee7bb88fed 74
tim004 0:c6ee7bb88fed 75 void pomjeriGore (int &x, int &y)
tim004 0:c6ee7bb88fed 76 {
tim004 0:c6ee7bb88fed 77 if (y>43)
tim004 0:c6ee7bb88fed 78 {
tim004 0:c6ee7bb88fed 79 obrisi(x, y);
tim004 0:c6ee7bb88fed 80 y=0;
tim004 0:c6ee7bb88fed 81 setCursor(x, y);
tim004 0:c6ee7bb88fed 82 }
tim004 0:c6ee7bb88fed 83 else {
tim004 0:c6ee7bb88fed 84 obrisi(x, y);
tim004 0:c6ee7bb88fed 85 y=y+1;
tim004 0:c6ee7bb88fed 86 setCursor(x, y);
tim004 0:c6ee7bb88fed 87 }
tim004 0:c6ee7bb88fed 88 }
tim004 0:c6ee7bb88fed 89
tim004 0:c6ee7bb88fed 90 void pomjeriDole (int &x, int &y)
tim004 0:c6ee7bb88fed 91 {
tim004 0:c6ee7bb88fed 92 if (y<5)
tim004 0:c6ee7bb88fed 93 {
tim004 0:c6ee7bb88fed 94 obrisi(x, y);
tim004 0:c6ee7bb88fed 95 y=75;
tim004 0:c6ee7bb88fed 96 setCursor(x, y);
tim004 0:c6ee7bb88fed 97 }
tim004 0:c6ee7bb88fed 98 else {
tim004 0:c6ee7bb88fed 99 obrisi(x, y);
tim004 0:c6ee7bb88fed 100 y=y-1;
tim004 0:c6ee7bb88fed 101 setCursor(x, y);
tim004 0:c6ee7bb88fed 102 }
tim004 0:c6ee7bb88fed 103 }
tim004 0:c6ee7bb88fed 104
tim004 0:c6ee7bb88fed 105 void iscrtajLiniju(int x1, int y1, int x2, int y2)
tim004 0:c6ee7bb88fed 106 {
tim004 0:c6ee7bb88fed 107 lcd.setXYAddress(0,0);
tim004 0:c6ee7bb88fed 108 int dx = abs(x2-x1), sx = x1<x2 ? 1 : -1;
tim004 0:c6ee7bb88fed 109 int dy = abs(y2-y1), sy = y1<y2 ? 1 : -1;
tim004 0:c6ee7bb88fed 110 int err = (dx>dy ? dx : -dy)/2, e2;
tim004 0:c6ee7bb88fed 111 x1=x2; y1=y2;
tim004 0:c6ee7bb88fed 112 for(;;){
tim004 0:c6ee7bb88fed 113 setCursor(x1,y1);
tim004 0:c6ee7bb88fed 114 if (x1==x2 && y1==y2) break;
tim004 0:c6ee7bb88fed 115 e2 = err;
tim004 0:c6ee7bb88fed 116 if (e2 >-dx) { err -= dy; x1 += sx; }
tim004 0:c6ee7bb88fed 117 if (e2 < dy) { err += dx; y1 += sy; }
tim004 0:c6ee7bb88fed 118 }
tim004 0:c6ee7bb88fed 119 }
tim004 0:c6ee7bb88fed 120
tim004 0:c6ee7bb88fed 121 static int nesto =1;
tim004 0:c6ee7bb88fed 122 void tacka()
tim004 0:c6ee7bb88fed 123 {
tim004 0:c6ee7bb88fed 124
tim004 0:c6ee7bb88fed 125 if(deb.read_ms() > 400)
tim004 0:c6ee7bb88fed 126 if(nesto%2!=0) {xpoc=X; ypoc=Y;nesto++;}
tim004 0:c6ee7bb88fed 127 else{
tim004 0:c6ee7bb88fed 128 x=X; y=Y;
tim004 0:c6ee7bb88fed 129 iscrtajLiniju(xpoc,ypoc,x,y);
tim004 0:c6ee7bb88fed 130 wait(5);
tim004 0:c6ee7bb88fed 131 lcd.clear();
tim004 0:c6ee7bb88fed 132 xpoc=90; ypoc=90; lcd.setXYAddress(0,0); X=0; Y=0; nesto=1;
tim004 0:c6ee7bb88fed 133 }
tim004 0:c6ee7bb88fed 134
tim004 0:c6ee7bb88fed 135 deb.reset();
tim004 0:c6ee7bb88fed 136 }
tim004 0:c6ee7bb88fed 137
tim004 0:c6ee7bb88fed 138
tim004 0:c6ee7bb88fed 139
tim004 0:c6ee7bb88fed 140
tim004 0:c6ee7bb88fed 141
tim004 0:c6ee7bb88fed 142
tim004 0:c6ee7bb88fed 143
tim004 0:c6ee7bb88fed 144 int main()
tim004 0:c6ee7bb88fed 145 {
tim004 0:c6ee7bb88fed 146
tim004 0:c6ee7bb88fed 147 enable=1;
tim004 0:c6ee7bb88fed 148
tim004 0:c6ee7bb88fed 149 SW.mode(PullUp);
tim004 0:c6ee7bb88fed 150 deb.start();
tim004 0:c6ee7bb88fed 151
tim004 0:c6ee7bb88fed 152 // inicijalizacija displeja
tim004 0:c6ee7bb88fed 153 lcd.init();
tim004 0:c6ee7bb88fed 154 lcd.setXYAddress(X,Y);
tim004 0:c6ee7bb88fed 155
tim004 0:c6ee7bb88fed 156 int x1=-1, y1=-1, x2, y2;
tim004 0:c6ee7bb88fed 157
tim004 0:c6ee7bb88fed 158 setCursor(X,Y);
tim004 0:c6ee7bb88fed 159 while (1)
tim004 0:c6ee7bb88fed 160 {
tim004 0:c6ee7bb88fed 161 if(VRx < 1.0/3.0) pomjeriDesno(X,Y);
tim004 0:c6ee7bb88fed 162 else if(VRx > 2.0/3.0) pomjeriLijevo(X,Y);
tim004 0:c6ee7bb88fed 163
tim004 0:c6ee7bb88fed 164 if(VRy < 1.0/3.0) pomjeriGore(X,Y);
tim004 0:c6ee7bb88fed 165 else if(VRy > 2.0/3.0) pomjeriDole(X,Y);
tim004 0:c6ee7bb88fed 166
tim004 0:c6ee7bb88fed 167 setCursor(xpoc,ypoc);
tim004 0:c6ee7bb88fed 168 if (mytaster)
tim004 0:c6ee7bb88fed 169 {
tim004 0:c6ee7bb88fed 170 if (x1==-1 && y1==-1)
tim004 0:c6ee7bb88fed 171 {
tim004 0:c6ee7bb88fed 172 x1=X, y1=Y;
tim004 0:c6ee7bb88fed 173 lcd.setXYAddress(X,Y);
tim004 0:c6ee7bb88fed 174 lcd.setPixel(x1, y1);
tim004 0:c6ee7bb88fed 175 }
tim004 0:c6ee7bb88fed 176 else
tim004 0:c6ee7bb88fed 177 {
tim004 0:c6ee7bb88fed 178 x2=X, y2=Y;
tim004 0:c6ee7bb88fed 179 lcd.setXYAddress(X,Y);
tim004 0:c6ee7bb88fed 180 lcd.setPixel(x2, y2);
tim004 0:c6ee7bb88fed 181 }
tim004 0:c6ee7bb88fed 182 }
tim004 0:c6ee7bb88fed 183
tim004 0:c6ee7bb88fed 184 }
tim004 0:c6ee7bb88fed 185
tim004 0:c6ee7bb88fed 186 }
tim004 0:c6ee7bb88fed 187