tim003 tim003
/
lv7_Grupa1_Tim003_Zadatak1
Aida Pločo Tarik Demirović
main.cpp@0:7537b7c6e82c, 2014-05-05 (annotated)
- Committer:
- tim003
- Date:
- Mon May 05 06:50:11 2014 +0000
- Revision:
- 0:7537b7c6e82c
LV7-PAI-Grupa1-Tim003-Zadatak1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tim003 | 0:7537b7c6e82c | 1 | #include "mbed.h" |
tim003 | 0:7537b7c6e82c | 2 | #include "N5110.h" |
tim003 | 0:7537b7c6e82c | 3 | |
tim003 | 0:7537b7c6e82c | 4 | AnalogIn VRx(dp11); |
tim003 | 0:7537b7c6e82c | 5 | AnalogIn VRy(dp10); |
tim003 | 0:7537b7c6e82c | 6 | |
tim003 | 0:7537b7c6e82c | 7 | N5110 display(dp4, dp24, dp23, dp25, dp2, dp6, dp18); |
tim003 | 0:7537b7c6e82c | 8 | |
tim003 | 0:7537b7c6e82c | 9 | Timer timer1; |
tim003 | 0:7537b7c6e82c | 10 | Timer timer2; |
tim003 | 0:7537b7c6e82c | 11 | |
tim003 | 0:7537b7c6e82c | 12 | InterruptIn taster1(dp1); |
tim003 | 0:7537b7c6e82c | 13 | DigitalOut enable(dp14); |
tim003 | 0:7537b7c6e82c | 14 | |
tim003 | 0:7537b7c6e82c | 15 | bool klik = true; |
tim003 | 0:7537b7c6e82c | 16 | |
tim003 | 0:7537b7c6e82c | 17 | int x = 42; |
tim003 | 0:7537b7c6e82c | 18 | int y = 24; |
tim003 | 0:7537b7c6e82c | 19 | |
tim003 | 0:7537b7c6e82c | 20 | int t1[2]; |
tim003 | 0:7537b7c6e82c | 21 | int t2[2]; |
tim003 | 0:7537b7c6e82c | 22 | int t3[2]; |
tim003 | 0:7537b7c6e82c | 23 | int t4[2]; |
tim003 | 0:7537b7c6e82c | 24 | |
tim003 | 0:7537b7c6e82c | 25 | bool temp1 = false; |
tim003 | 0:7537b7c6e82c | 26 | bool temp2 = false; |
tim003 | 0:7537b7c6e82c | 27 | bool temp3 = false; |
tim003 | 0:7537b7c6e82c | 28 | bool temp4 = false; |
tim003 | 0:7537b7c6e82c | 29 | |
tim003 | 0:7537b7c6e82c | 30 | void ocitajXY() |
tim003 | 0:7537b7c6e82c | 31 | { |
tim003 | 0:7537b7c6e82c | 32 | if (VRx < 1.0/3.0) |
tim003 | 0:7537b7c6e82c | 33 | { |
tim003 | 0:7537b7c6e82c | 34 | x--; |
tim003 | 0:7537b7c6e82c | 35 | if(x < 0) x = 0; |
tim003 | 0:7537b7c6e82c | 36 | } |
tim003 | 0:7537b7c6e82c | 37 | |
tim003 | 0:7537b7c6e82c | 38 | if (VRx > 2.0/3.0) |
tim003 | 0:7537b7c6e82c | 39 | { |
tim003 | 0:7537b7c6e82c | 40 | x++; |
tim003 | 0:7537b7c6e82c | 41 | if(x > 83) x = 83; |
tim003 | 0:7537b7c6e82c | 42 | } |
tim003 | 0:7537b7c6e82c | 43 | |
tim003 | 0:7537b7c6e82c | 44 | if (VRy < 1.0/3.0) |
tim003 | 0:7537b7c6e82c | 45 | { |
tim003 | 0:7537b7c6e82c | 46 | y--; |
tim003 | 0:7537b7c6e82c | 47 | if(y < 0) y = 0; |
tim003 | 0:7537b7c6e82c | 48 | } |
tim003 | 0:7537b7c6e82c | 49 | |
tim003 | 0:7537b7c6e82c | 50 | if (VRy > 2.0/3.0) |
tim003 | 0:7537b7c6e82c | 51 | { |
tim003 | 0:7537b7c6e82c | 52 | y++; |
tim003 | 0:7537b7c6e82c | 53 | if(y > 47) y = 47; |
tim003 | 0:7537b7c6e82c | 54 | } |
tim003 | 0:7537b7c6e82c | 55 | |
tim003 | 0:7537b7c6e82c | 56 | t1[0] = x - 1; |
tim003 | 0:7537b7c6e82c | 57 | t1[1] = y; |
tim003 | 0:7537b7c6e82c | 58 | |
tim003 | 0:7537b7c6e82c | 59 | t2[0] = x; |
tim003 | 0:7537b7c6e82c | 60 | t2[1] = y + 1; |
tim003 | 0:7537b7c6e82c | 61 | |
tim003 | 0:7537b7c6e82c | 62 | t3[0] = x + 1; |
tim003 | 0:7537b7c6e82c | 63 | t3[1] = y; |
tim003 | 0:7537b7c6e82c | 64 | |
tim003 | 0:7537b7c6e82c | 65 | t4[0] = x; |
tim003 | 0:7537b7c6e82c | 66 | t4[1] = y - 1; |
tim003 | 0:7537b7c6e82c | 67 | } |
tim003 | 0:7537b7c6e82c | 68 | |
tim003 | 0:7537b7c6e82c | 69 | void crtajTacku() |
tim003 | 0:7537b7c6e82c | 70 | { |
tim003 | 0:7537b7c6e82c | 71 | /* |
tim003 | 0:7537b7c6e82c | 72 | if(timer1.read_ms() > 200 && timer1.read_ms() < 500) |
tim003 | 0:7537b7c6e82c | 73 | { |
tim003 | 0:7537b7c6e82c | 74 | timer1.reset(); |
tim003 | 0:7537b7c6e82c | 75 | display.clear(); |
tim003 | 0:7537b7c6e82c | 76 | x = 42; |
tim003 | 0:7537b7c6e82c | 77 | y = 24; |
tim003 | 0:7537b7c6e82c | 78 | } |
tim003 | 0:7537b7c6e82c | 79 | |
tim003 | 0:7537b7c6e82c | 80 | if(timer1.read_ms() > 200) |
tim003 | 0:7537b7c6e82c | 81 | { |
tim003 | 0:7537b7c6e82c | 82 | timer1.reset(); |
tim003 | 0:7537b7c6e82c | 83 | display.setPixel(x, y); |
tim003 | 0:7537b7c6e82c | 84 | display.refresh(); |
tim003 | 0:7537b7c6e82c | 85 | } |
tim003 | 0:7537b7c6e82c | 86 | */ |
tim003 | 0:7537b7c6e82c | 87 | |
tim003 | 0:7537b7c6e82c | 88 | |
tim003 | 0:7537b7c6e82c | 89 | if(klik) |
tim003 | 0:7537b7c6e82c | 90 | { |
tim003 | 0:7537b7c6e82c | 91 | if(timer1.read_ms() > 200) |
tim003 | 0:7537b7c6e82c | 92 | { |
tim003 | 0:7537b7c6e82c | 93 | klik = !klik; |
tim003 | 0:7537b7c6e82c | 94 | timer1.reset(); |
tim003 | 0:7537b7c6e82c | 95 | display.setPixel(x, y); |
tim003 | 0:7537b7c6e82c | 96 | display.refresh(); |
tim003 | 0:7537b7c6e82c | 97 | } |
tim003 | 0:7537b7c6e82c | 98 | } |
tim003 | 0:7537b7c6e82c | 99 | else |
tim003 | 0:7537b7c6e82c | 100 | { |
tim003 | 0:7537b7c6e82c | 101 | if(timer1.read_ms() > 200 && timer1.read_ms() < 1300) |
tim003 | 0:7537b7c6e82c | 102 | { |
tim003 | 0:7537b7c6e82c | 103 | timer1.reset(); |
tim003 | 0:7537b7c6e82c | 104 | display.clear(); |
tim003 | 0:7537b7c6e82c | 105 | x = 42; |
tim003 | 0:7537b7c6e82c | 106 | y = 24; |
tim003 | 0:7537b7c6e82c | 107 | } |
tim003 | 0:7537b7c6e82c | 108 | if(timer1.read_ms() > 1300) |
tim003 | 0:7537b7c6e82c | 109 | { |
tim003 | 0:7537b7c6e82c | 110 | timer1.reset(); |
tim003 | 0:7537b7c6e82c | 111 | display.setPixel(x, y); |
tim003 | 0:7537b7c6e82c | 112 | display.refresh(); |
tim003 | 0:7537b7c6e82c | 113 | } |
tim003 | 0:7537b7c6e82c | 114 | |
tim003 | 0:7537b7c6e82c | 115 | klik = !klik; |
tim003 | 0:7537b7c6e82c | 116 | } |
tim003 | 0:7537b7c6e82c | 117 | } |
tim003 | 0:7537b7c6e82c | 118 | |
tim003 | 0:7537b7c6e82c | 119 | void crtajCrosshair() |
tim003 | 0:7537b7c6e82c | 120 | { |
tim003 | 0:7537b7c6e82c | 121 | if(x > 0) |
tim003 | 0:7537b7c6e82c | 122 | { |
tim003 | 0:7537b7c6e82c | 123 | if(display.getPixel(t1[0], t1[1]) != 0) |
tim003 | 0:7537b7c6e82c | 124 | temp1 = true; |
tim003 | 0:7537b7c6e82c | 125 | display.setPixel(t1[0], t1[1]); |
tim003 | 0:7537b7c6e82c | 126 | } |
tim003 | 0:7537b7c6e82c | 127 | |
tim003 | 0:7537b7c6e82c | 128 | if(x < 83) |
tim003 | 0:7537b7c6e82c | 129 | { |
tim003 | 0:7537b7c6e82c | 130 | if(display.getPixel(t3[0], t3[1]) != 0) |
tim003 | 0:7537b7c6e82c | 131 | temp3 = true; |
tim003 | 0:7537b7c6e82c | 132 | display.setPixel(t3[0], t3[1]); |
tim003 | 0:7537b7c6e82c | 133 | } |
tim003 | 0:7537b7c6e82c | 134 | |
tim003 | 0:7537b7c6e82c | 135 | if(y > 0) |
tim003 | 0:7537b7c6e82c | 136 | { |
tim003 | 0:7537b7c6e82c | 137 | if(display.getPixel(t2[0], t2[1]) != 0) |
tim003 | 0:7537b7c6e82c | 138 | temp2 = true; |
tim003 | 0:7537b7c6e82c | 139 | display.setPixel(t2[0], t2[1]); |
tim003 | 0:7537b7c6e82c | 140 | } |
tim003 | 0:7537b7c6e82c | 141 | |
tim003 | 0:7537b7c6e82c | 142 | if(y < 47) |
tim003 | 0:7537b7c6e82c | 143 | { |
tim003 | 0:7537b7c6e82c | 144 | if(display.getPixel(t4[0], t4[1]) != 0) |
tim003 | 0:7537b7c6e82c | 145 | temp4 = true; |
tim003 | 0:7537b7c6e82c | 146 | display.setPixel(t4[0], t4[1]); |
tim003 | 0:7537b7c6e82c | 147 | } |
tim003 | 0:7537b7c6e82c | 148 | |
tim003 | 0:7537b7c6e82c | 149 | display.refresh(); |
tim003 | 0:7537b7c6e82c | 150 | } |
tim003 | 0:7537b7c6e82c | 151 | |
tim003 | 0:7537b7c6e82c | 152 | void brisiCrosshair() |
tim003 | 0:7537b7c6e82c | 153 | { |
tim003 | 0:7537b7c6e82c | 154 | if(!temp1) |
tim003 | 0:7537b7c6e82c | 155 | display.clearPixel(t1[0], t1[1]); |
tim003 | 0:7537b7c6e82c | 156 | if(!temp2) |
tim003 | 0:7537b7c6e82c | 157 | display.clearPixel(t2[0], t2[1]); |
tim003 | 0:7537b7c6e82c | 158 | if(!temp3) |
tim003 | 0:7537b7c6e82c | 159 | display.clearPixel(t3[0], t3[1]); |
tim003 | 0:7537b7c6e82c | 160 | if(!temp4) |
tim003 | 0:7537b7c6e82c | 161 | display.clearPixel(t4[0], t4[1]); |
tim003 | 0:7537b7c6e82c | 162 | |
tim003 | 0:7537b7c6e82c | 163 | display.refresh(); |
tim003 | 0:7537b7c6e82c | 164 | |
tim003 | 0:7537b7c6e82c | 165 | temp1 = false; |
tim003 | 0:7537b7c6e82c | 166 | temp2 = false; |
tim003 | 0:7537b7c6e82c | 167 | temp3 = false; |
tim003 | 0:7537b7c6e82c | 168 | temp4 = false; |
tim003 | 0:7537b7c6e82c | 169 | } |
tim003 | 0:7537b7c6e82c | 170 | |
tim003 | 0:7537b7c6e82c | 171 | void osvjezi() |
tim003 | 0:7537b7c6e82c | 172 | { |
tim003 | 0:7537b7c6e82c | 173 | brisiCrosshair(); |
tim003 | 0:7537b7c6e82c | 174 | ocitajXY(); |
tim003 | 0:7537b7c6e82c | 175 | crtajCrosshair(); |
tim003 | 0:7537b7c6e82c | 176 | } |
tim003 | 0:7537b7c6e82c | 177 | |
tim003 | 0:7537b7c6e82c | 178 | int main() { |
tim003 | 0:7537b7c6e82c | 179 | enable = 1; |
tim003 | 0:7537b7c6e82c | 180 | display.init(); |
tim003 | 0:7537b7c6e82c | 181 | display.setXYAddress(0, 0); |
tim003 | 0:7537b7c6e82c | 182 | timer1.start(); |
tim003 | 0:7537b7c6e82c | 183 | taster1.rise(&crtajTacku); |
tim003 | 0:7537b7c6e82c | 184 | while(1){ |
tim003 | 0:7537b7c6e82c | 185 | wait(0.25); |
tim003 | 0:7537b7c6e82c | 186 | osvjezi(); |
tim003 | 0:7537b7c6e82c | 187 | } |
tim003 | 0:7537b7c6e82c | 188 | } |