tim008 tim008
/
lv7-grupa2-tim008-zad1
Mirhat Babic Orhan Ljubuncic
main.cpp@0:d7f0f6ec7217, 2014-04-28 (annotated)
- 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?
User | Revision | Line number | New 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 | } |