Mirhat Babic Orhan Ljubuncic

Dependencies:   N5110 mbed

Committer:
tim008
Date:
Mon Apr 28 09:55:32 2014 +0000
Revision:
0:d7f0f6ec7217
Pai-lv7-grupa2-tim008-zad1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim008 0:d7f0f6ec7217 1 #include "mbed.h"
tim008 0:d7f0f6ec7217 2 #include "N5110.h"
tim008 0:d7f0f6ec7217 3
tim008 0:d7f0f6ec7217 4 #define razmakX 83.0
tim008 0:d7f0f6ec7217 5 #define razmakY 47.0
tim008 0:d7f0f6ec7217 6
tim008 0:d7f0f6ec7217 7 AnalogIn VRx(dp11);
tim008 0:d7f0f6ec7217 8 AnalogIn VRy(dp10);
tim008 0:d7f0f6ec7217 9 InterruptIn taster1(dp1);
tim008 0:d7f0f6ec7217 10
tim008 0:d7f0f6ec7217 11 int brojac_tacki(0);
tim008 0:d7f0f6ec7217 12 int tacka1x, tacka1y, tacka2x, tacka2y;
tim008 0:d7f0f6ec7217 13
tim008 0:d7f0f6ec7217 14 int centar_crosshairx(0);
tim008 0:d7f0f6ec7217 15 int centar_crosshairy(0);
tim008 0:d7f0f6ec7217 16
tim008 0:d7f0f6ec7217 17
tim008 0:d7f0f6ec7217 18
tim008 0:d7f0f6ec7217 19
tim008 0:d7f0f6ec7217 20
tim008 0:d7f0f6ec7217 21
tim008 0:d7f0f6ec7217 22 N5110 display(dp4,dp24,dp23,dp25,dp2,dp6,dp18);
tim008 0:d7f0f6ec7217 23
tim008 0:d7f0f6ec7217 24 Timer db; //za debouncing
tim008 0:d7f0f6ec7217 25
tim008 0:d7f0f6ec7217 26 Timer dvoklik;
tim008 0:d7f0f6ec7217 27
tim008 0:d7f0f6ec7217 28
tim008 0:d7f0f6ec7217 29 void draw_crosshair(int x, int y)
tim008 0:d7f0f6ec7217 30 {
tim008 0:d7f0f6ec7217 31
tim008 0:d7f0f6ec7217 32 for(int i = centar_crosshairx-3;i<centar_crosshairx+4;i++)
tim008 0:d7f0f6ec7217 33
tim008 0:d7f0f6ec7217 34 if(i==tacka1x && centar_crosshairy == tacka1y || i==tacka2x && centar_crosshairy == tacka2y) {}
tim008 0:d7f0f6ec7217 35 else
tim008 0:d7f0f6ec7217 36 display.clearPixel(i, centar_crosshairy);
tim008 0:d7f0f6ec7217 37
tim008 0:d7f0f6ec7217 38 for(int i=centar_crosshairy-3;i<centar_crosshairy+4;i++)
tim008 0:d7f0f6ec7217 39
tim008 0:d7f0f6ec7217 40 if(centar_crosshairx==tacka1x && i == tacka1y || centar_crosshairx==tacka2x && i == tacka2y){}
tim008 0:d7f0f6ec7217 41 else
tim008 0:d7f0f6ec7217 42 display.clearPixel(centar_crosshairx, i);
tim008 0:d7f0f6ec7217 43
tim008 0:d7f0f6ec7217 44 centar_crosshairx = x;
tim008 0:d7f0f6ec7217 45 centar_crosshairy = y;
tim008 0:d7f0f6ec7217 46
tim008 0:d7f0f6ec7217 47
tim008 0:d7f0f6ec7217 48 for(int i = x-3;i<x+4;i++)
tim008 0:d7f0f6ec7217 49 if(i >=0 && i <=83)
tim008 0:d7f0f6ec7217 50 {
tim008 0:d7f0f6ec7217 51 display.setXYAddress(0,0);
tim008 0:d7f0f6ec7217 52 display.setPixel(i, y);
tim008 0:d7f0f6ec7217 53
tim008 0:d7f0f6ec7217 54 display.refresh();
tim008 0:d7f0f6ec7217 55
tim008 0:d7f0f6ec7217 56 }
tim008 0:d7f0f6ec7217 57
tim008 0:d7f0f6ec7217 58 for(int i=y-3;i<y+4;i++)
tim008 0:d7f0f6ec7217 59 if(i >=0 && i <=47)
tim008 0:d7f0f6ec7217 60 {
tim008 0:d7f0f6ec7217 61 display.setXYAddress(0,0);
tim008 0:d7f0f6ec7217 62 display.setPixel(x, i);
tim008 0:d7f0f6ec7217 63
tim008 0:d7f0f6ec7217 64 display.refresh();
tim008 0:d7f0f6ec7217 65 }
tim008 0:d7f0f6ec7217 66 }
tim008 0:d7f0f6ec7217 67
tim008 0:d7f0f6ec7217 68 void crtajPravougaonik()
tim008 0:d7f0f6ec7217 69 {
tim008 0:d7f0f6ec7217 70 __disable_irq();
tim008 0:d7f0f6ec7217 71 int i, j, grx, gry;
tim008 0:d7f0f6ec7217 72 if(tacka1x < tacka2x)
tim008 0:d7f0f6ec7217 73 { i = tacka1x;
tim008 0:d7f0f6ec7217 74 grx = tacka2x;
tim008 0:d7f0f6ec7217 75
tim008 0:d7f0f6ec7217 76 }
tim008 0:d7f0f6ec7217 77 else
tim008 0:d7f0f6ec7217 78
tim008 0:d7f0f6ec7217 79 {
tim008 0:d7f0f6ec7217 80 i = tacka2x;
tim008 0:d7f0f6ec7217 81 grx = tacka1x;
tim008 0:d7f0f6ec7217 82
tim008 0:d7f0f6ec7217 83 }
tim008 0:d7f0f6ec7217 84
tim008 0:d7f0f6ec7217 85 if(tacka1y < tacka2y)
tim008 0:d7f0f6ec7217 86 {
tim008 0:d7f0f6ec7217 87 j = tacka1y;
tim008 0:d7f0f6ec7217 88 gry = tacka2y;
tim008 0:d7f0f6ec7217 89
tim008 0:d7f0f6ec7217 90 }
tim008 0:d7f0f6ec7217 91 else
tim008 0:d7f0f6ec7217 92 {
tim008 0:d7f0f6ec7217 93 j = tacka2y;
tim008 0:d7f0f6ec7217 94 gry = tacka1y;
tim008 0:d7f0f6ec7217 95
tim008 0:d7f0f6ec7217 96 }
tim008 0:d7f0f6ec7217 97
tim008 0:d7f0f6ec7217 98 int j2 = j;
tim008 0:d7f0f6ec7217 99
tim008 0:d7f0f6ec7217 100 while(i < grx)
tim008 0:d7f0f6ec7217 101 {
tim008 0:d7f0f6ec7217 102 while(j < gry)
tim008 0:d7f0f6ec7217 103 {
tim008 0:d7f0f6ec7217 104
tim008 0:d7f0f6ec7217 105 display.setXYAddress(0,0);
tim008 0:d7f0f6ec7217 106 display.setPixel(i, j);
tim008 0:d7f0f6ec7217 107 display.refresh();
tim008 0:d7f0f6ec7217 108 j++;
tim008 0:d7f0f6ec7217 109 }
tim008 0:d7f0f6ec7217 110
tim008 0:d7f0f6ec7217 111 j = j2;
tim008 0:d7f0f6ec7217 112 i++;
tim008 0:d7f0f6ec7217 113
tim008 0:d7f0f6ec7217 114 }
tim008 0:d7f0f6ec7217 115
tim008 0:d7f0f6ec7217 116 __enable_irq();
tim008 0:d7f0f6ec7217 117
tim008 0:d7f0f6ec7217 118 }
tim008 0:d7f0f6ec7217 119
tim008 0:d7f0f6ec7217 120 void tacka()
tim008 0:d7f0f6ec7217 121 {
tim008 0:d7f0f6ec7217 122
tim008 0:d7f0f6ec7217 123
tim008 0:d7f0f6ec7217 124
tim008 0:d7f0f6ec7217 125 if(db.read_ms() <= 200) return;
tim008 0:d7f0f6ec7217 126
tim008 0:d7f0f6ec7217 127
tim008 0:d7f0f6ec7217 128
tim008 0:d7f0f6ec7217 129 if(dvoklik.read_ms() < 1000)
tim008 0:d7f0f6ec7217 130 {
tim008 0:d7f0f6ec7217 131 display.clear();
tim008 0:d7f0f6ec7217 132 return;
tim008 0:d7f0f6ec7217 133 }
tim008 0:d7f0f6ec7217 134
tim008 0:d7f0f6ec7217 135
tim008 0:d7f0f6ec7217 136
tim008 0:d7f0f6ec7217 137
tim008 0:d7f0f6ec7217 138
tim008 0:d7f0f6ec7217 139
tim008 0:d7f0f6ec7217 140
tim008 0:d7f0f6ec7217 141 display.setXYAddress(0,0);
tim008 0:d7f0f6ec7217 142 display.setPixel(centar_crosshairx, centar_crosshairy);
tim008 0:d7f0f6ec7217 143
tim008 0:d7f0f6ec7217 144 display.refresh();
tim008 0:d7f0f6ec7217 145 brojac_tacki++;
tim008 0:d7f0f6ec7217 146
tim008 0:d7f0f6ec7217 147 if(brojac_tacki==1)
tim008 0:d7f0f6ec7217 148 {
tim008 0:d7f0f6ec7217 149 tacka1x = centar_crosshairx;
tim008 0:d7f0f6ec7217 150 tacka1y = centar_crosshairy;
tim008 0:d7f0f6ec7217 151
tim008 0:d7f0f6ec7217 152 }
tim008 0:d7f0f6ec7217 153
tim008 0:d7f0f6ec7217 154 else if(brojac_tacki==2)
tim008 0:d7f0f6ec7217 155 {
tim008 0:d7f0f6ec7217 156 tacka2x = centar_crosshairx;
tim008 0:d7f0f6ec7217 157 tacka2y = centar_crosshairy;
tim008 0:d7f0f6ec7217 158 crtajPravougaonik();
tim008 0:d7f0f6ec7217 159 brojac_tacki = 0;
tim008 0:d7f0f6ec7217 160 }
tim008 0:d7f0f6ec7217 161
tim008 0:d7f0f6ec7217 162
tim008 0:d7f0f6ec7217 163 db.reset();
tim008 0:d7f0f6ec7217 164 dvoklik.reset();
tim008 0:d7f0f6ec7217 165
tim008 0:d7f0f6ec7217 166 }
tim008 0:d7f0f6ec7217 167
tim008 0:d7f0f6ec7217 168
tim008 0:d7f0f6ec7217 169
tim008 0:d7f0f6ec7217 170 int main()
tim008 0:d7f0f6ec7217 171
tim008 0:d7f0f6ec7217 172 {
tim008 0:d7f0f6ec7217 173 db.start();
tim008 0:d7f0f6ec7217 174 dvoklik.start();
tim008 0:d7f0f6ec7217 175 display.init();
tim008 0:d7f0f6ec7217 176 display.normalMode();
tim008 0:d7f0f6ec7217 177 display.setXYAddress(0,0);
tim008 0:d7f0f6ec7217 178
tim008 0:d7f0f6ec7217 179 taster1.rise(&tacka);
tim008 0:d7f0f6ec7217 180
tim008 0:d7f0f6ec7217 181 while(1)
tim008 0:d7f0f6ec7217 182 {
tim008 0:d7f0f6ec7217 183 draw_crosshair(VRx.read()*razmakX, VRy.read()*razmakY);
tim008 0:d7f0f6ec7217 184
tim008 0:d7f0f6ec7217 185 }
tim008 0:d7f0f6ec7217 186
tim008 0:d7f0f6ec7217 187 }