Aida Pločo Tarik Demirović

Dependencies:   N5110 mbed

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?

UserRevisionLine numberNew 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 }