tim003 tim003
/
LV7-PAI-Grupa2-Zad1-Tim003
Granulo Eldar Halilović Almin
main.cpp@0:fd783f2c464e, 2014-04-28 (annotated)
- Committer:
- tim003
- Date:
- Mon Apr 28 10:00:04 2014 +0000
- Revision:
- 0:fd783f2c464e
LV7-PAI-Tim003
Who changed what in which revision?
User | Revision | Line number | New 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 | } |