Granulo Eldar Halilović Almin

Dependencies:   N5110 mbed

Committer:
tim003
Date:
Mon Apr 28 10:00:04 2014 +0000
Revision:
0:fd783f2c464e
LV7-PAI-Tim003

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim003 0:fd783f2c464e 1 #include "mbed.h"
tim003 0:fd783f2c464e 2 #include "N5110.h"
tim003 0:fd783f2c464e 3 #include <vector>
tim003 0:fd783f2c464e 4
tim003 0:fd783f2c464e 5 //koordinate
tim003 0:fd783f2c464e 6 int X = 0;
tim003 0:fd783f2c464e 7 int Y = 0;
tim003 0:fd783f2c464e 8
tim003 0:fd783f2c464e 9 //lcd
tim003 0:fd783f2c464e 10 N5110 lcd(dp4, dp24, dp23, dp25, dp2, dp6, dp18);
tim003 0:fd783f2c464e 11 DigitalOut enable(dp14);
tim003 0:fd783f2c464e 12
tim003 0:fd783f2c464e 13 //dzojstik
tim003 0:fd783f2c464e 14 AnalogIn VRx(dp11);
tim003 0:fd783f2c464e 15 AnalogIn VRy(dp10);
tim003 0:fd783f2c464e 16
tim003 0:fd783f2c464e 17 struct Koordinate
tim003 0:fd783f2c464e 18 {
tim003 0:fd783f2c464e 19 int x;int y;
tim003 0:fd783f2c464e 20 Koordinate(int a,int b){x=a;y=b;}
tim003 0:fd783f2c464e 21 };
tim003 0:fd783f2c464e 22 vector<Koordinate> koordinate;
tim003 0:fd783f2c464e 23
tim003 0:fd783f2c464e 24 //LAFO CRTA CROSSHAIR U OBLIKU OBICNOG PLUSA
tim003 0:fd783f2c464e 25 void drawCrosshair(int x, int y){
tim003 0:fd783f2c464e 26
tim003 0:fd783f2c464e 27 int i = x - 3;
tim003 0:fd783f2c464e 28 int j = y;
tim003 0:fd783f2c464e 29
tim003 0:fd783f2c464e 30 while( i <= x + 3){
tim003 0:fd783f2c464e 31
tim003 0:fd783f2c464e 32 lcd.setPixel(i, j);
tim003 0:fd783f2c464e 33
tim003 0:fd783f2c464e 34 i++;
tim003 0:fd783f2c464e 35 }
tim003 0:fd783f2c464e 36 lcd.refresh();
tim003 0:fd783f2c464e 37
tim003 0:fd783f2c464e 38 i = x;
tim003 0:fd783f2c464e 39 j = y - 3;
tim003 0:fd783f2c464e 40
tim003 0:fd783f2c464e 41 while(j <= y + 3){
tim003 0:fd783f2c464e 42
tim003 0:fd783f2c464e 43 lcd.setPixel(i, j);
tim003 0:fd783f2c464e 44
tim003 0:fd783f2c464e 45 j++;
tim003 0:fd783f2c464e 46
tim003 0:fd783f2c464e 47 }
tim003 0:fd783f2c464e 48 lcd.refresh();
tim003 0:fd783f2c464e 49 }
tim003 0:fd783f2c464e 50
tim003 0:fd783f2c464e 51
tim003 0:fd783f2c464e 52 //brise crosshair na koordinatama
tim003 0:fd783f2c464e 53
tim003 0:fd783f2c464e 54 void clearCrosshair(int x, int y){
tim003 0:fd783f2c464e 55
tim003 0:fd783f2c464e 56 int i = x - 3;
tim003 0:fd783f2c464e 57 int j = y;
tim003 0:fd783f2c464e 58
tim003 0:fd783f2c464e 59 while( i <= x + 3){
tim003 0:fd783f2c464e 60
tim003 0:fd783f2c464e 61 lcd.clearPixel(i, j);
tim003 0:fd783f2c464e 62
tim003 0:fd783f2c464e 63 i++;
tim003 0:fd783f2c464e 64 }
tim003 0:fd783f2c464e 65 lcd.refresh();
tim003 0:fd783f2c464e 66
tim003 0:fd783f2c464e 67 i = x;
tim003 0:fd783f2c464e 68 j = y - 3;
tim003 0:fd783f2c464e 69
tim003 0:fd783f2c464e 70 while(j <= y + 3){
tim003 0:fd783f2c464e 71
tim003 0:fd783f2c464e 72 lcd.clearPixel(i, j);
tim003 0:fd783f2c464e 73 j++;
tim003 0:fd783f2c464e 74 }
tim003 0:fd783f2c464e 75 for(int i=0;i<koordinate.size();i++)
tim003 0:fd783f2c464e 76 {
tim003 0:fd783f2c464e 77 lcd.setPixel(koordinate[i].x,koordinate[i].y);
tim003 0:fd783f2c464e 78 }
tim003 0:fd783f2c464e 79
tim003 0:fd783f2c464e 80 lcd.refresh();
tim003 0:fd783f2c464e 81 }
tim003 0:fd783f2c464e 82
tim003 0:fd783f2c464e 83 //ako je dzojstik lijevo poMAKET
tim003 0:fd783f2c464e 84
tim003 0:fd783f2c464e 85 void LEFT(int &x, int &y){
tim003 0:fd783f2c464e 86
tim003 0:fd783f2c464e 87 if(x > 0){
tim003 0:fd783f2c464e 88
tim003 0:fd783f2c464e 89 clearCrosshair(x, y);
tim003 0:fd783f2c464e 90 x = x - 1;
tim003 0:fd783f2c464e 91 drawCrosshair(x, y);
tim003 0:fd783f2c464e 92 lcd.refresh();
tim003 0:fd783f2c464e 93 }
tim003 0:fd783f2c464e 94
tim003 0:fd783f2c464e 95 }
tim003 0:fd783f2c464e 96
tim003 0:fd783f2c464e 97 //ako je desno poMAKET
tim003 0:fd783f2c464e 98
tim003 0:fd783f2c464e 99 void RIGHT(int &x, int &y){
tim003 0:fd783f2c464e 100
tim003 0:fd783f2c464e 101 if(x < 84){
tim003 0:fd783f2c464e 102
tim003 0:fd783f2c464e 103 clearCrosshair(x, y);
tim003 0:fd783f2c464e 104 x = x + 1;
tim003 0:fd783f2c464e 105 drawCrosshair(x, y);
tim003 0:fd783f2c464e 106 lcd.refresh();
tim003 0:fd783f2c464e 107 }
tim003 0:fd783f2c464e 108
tim003 0:fd783f2c464e 109 }
tim003 0:fd783f2c464e 110
tim003 0:fd783f2c464e 111 void DOWN(int &x, int &y){
tim003 0:fd783f2c464e 112
tim003 0:fd783f2c464e 113 if(y < 45){
tim003 0:fd783f2c464e 114
tim003 0:fd783f2c464e 115 clearCrosshair(x, y);
tim003 0:fd783f2c464e 116 y = y + 1;// ili minus dont nouuuuuuuu
tim003 0:fd783f2c464e 117 drawCrosshair(x, y);
tim003 0:fd783f2c464e 118 lcd.refresh();
tim003 0:fd783f2c464e 119 }
tim003 0:fd783f2c464e 120
tim003 0:fd783f2c464e 121 }
tim003 0:fd783f2c464e 122
tim003 0:fd783f2c464e 123 void UP(int &x, int &y){
tim003 0:fd783f2c464e 124
tim003 0:fd783f2c464e 125 if(y > 0){
tim003 0:fd783f2c464e 126
tim003 0:fd783f2c464e 127 clearCrosshair(x, y);
tim003 0:fd783f2c464e 128 y = y - 1;//ili plus dont nouuuuuuuuuuuu
tim003 0:fd783f2c464e 129 drawCrosshair(x, y);
tim003 0:fd783f2c464e 130 lcd.refresh();
tim003 0:fd783f2c464e 131 }
tim003 0:fd783f2c464e 132 }
tim003 0:fd783f2c464e 133 Timer t;
tim003 0:fd783f2c464e 134 InterruptIn taster(dp1);
tim003 0:fd783f2c464e 135 static int kliknut=1;
tim003 0:fd783f2c464e 136 Timer t1;
tim003 0:fd783f2c464e 137 void tacka()
tim003 0:fd783f2c464e 138 {
tim003 0:fd783f2c464e 139 if(t.read_ms() > 400){
tim003 0:fd783f2c464e 140 if(kliknut%2!=0) {lcd.setPixel(X,Y); lcd.refresh(); kliknut++; koordinate.push_back(Koordinate(X,Y));}
tim003 0:fd783f2c464e 141 else{
tim003 0:fd783f2c464e 142 t1.reset();
tim003 0:fd783f2c464e 143 if(t1.read_ms()>400){
tim003 0:fd783f2c464e 144 lcd.clear();
tim003 0:fd783f2c464e 145
tim003 0:fd783f2c464e 146 for(int i=0;i<koordinate.size();i++) koordinate.pop_back();
tim003 0:fd783f2c464e 147
tim003 0:fd783f2c464e 148 lcd.refresh();
tim003 0:fd783f2c464e 149
tim003 0:fd783f2c464e 150 }
tim003 0:fd783f2c464e 151 kliknut=1;
tim003 0:fd783f2c464e 152
tim003 0:fd783f2c464e 153 }
tim003 0:fd783f2c464e 154
tim003 0:fd783f2c464e 155 t.reset();
tim003 0:fd783f2c464e 156
tim003 0:fd783f2c464e 157 }
tim003 0:fd783f2c464e 158 }
tim003 0:fd783f2c464e 159
tim003 0:fd783f2c464e 160
tim003 0:fd783f2c464e 161
tim003 0:fd783f2c464e 162 int main() {
tim003 0:fd783f2c464e 163
tim003 0:fd783f2c464e 164 enable = 1;
tim003 0:fd783f2c464e 165 t.start();
tim003 0:fd783f2c464e 166 t1.start();
tim003 0:fd783f2c464e 167 lcd.init();
tim003 0:fd783f2c464e 168 lcd.setXYAddress(X, Y);
tim003 0:fd783f2c464e 169 lcd.refresh();
tim003 0:fd783f2c464e 170 taster.rise(&tacka);
tim003 0:fd783f2c464e 171 taster.enable_irq();
tim003 0:fd783f2c464e 172 while(1){
tim003 0:fd783f2c464e 173
tim003 0:fd783f2c464e 174 if(VRx < 1.0/3.0) LEFT(X,Y);
tim003 0:fd783f2c464e 175 else if(VRx > 2.0/3.0) RIGHT(X,Y);
tim003 0:fd783f2c464e 176
tim003 0:fd783f2c464e 177 if(VRy < 1.0/3.0) UP(X,Y);
tim003 0:fd783f2c464e 178 else if(VRy > 2.0/3.0) DOWN(X,Y);
tim003 0:fd783f2c464e 179
tim003 0:fd783f2c464e 180 }
tim003 0:fd783f2c464e 181
tim003 0:fd783f2c464e 182
tim003 0:fd783f2c464e 183 }