Muslija Adnan Kiselica Aldin

Dependencies:   N5110 mbed

Committer:
tim008
Date:
Mon May 05 06:41:03 2014 +0000
Revision:
0:3279bf1609c1
LV7_PAI_Tim008_Z1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim008 0:3279bf1609c1 1 #include "mbed.h"
tim008 0:3279bf1609c1 2 #include "N5110.h"
tim008 0:3279bf1609c1 3
tim008 0:3279bf1609c1 4 N5110 lcd(dp4,dp24,dp23,dp25,dp2,dp6,dp18);
tim008 0:3279bf1609c1 5
tim008 0:3279bf1609c1 6 AnalogIn VRx(dp11);
tim008 0:3279bf1609c1 7 AnalogIn VRy(dp10);
tim008 0:3279bf1609c1 8 InterruptIn SW(dp9);
tim008 0:3279bf1609c1 9
tim008 0:3279bf1609c1 10 int xmin=0,xmax=0;
tim008 0:3279bf1609c1 11 int ymin=0,ymax=0;
tim008 0:3279bf1609c1 12
tim008 0:3279bf1609c1 13 Timer press;
tim008 0:3279bf1609c1 14 Ticker ticker;
tim008 0:3279bf1609c1 15 bool set=true;
tim008 0:3279bf1609c1 16
tim008 0:3279bf1609c1 17 int first[2]={0,0};
tim008 0:3279bf1609c1 18 int second[2]={0,0};
tim008 0:3279bf1609c1 19 int point[2]={0,0};
tim008 0:3279bf1609c1 20
tim008 0:3279bf1609c1 21 bool crosshair[4]={false};
tim008 0:3279bf1609c1 22
tim008 0:3279bf1609c1 23 void setX()
tim008 0:3279bf1609c1 24 {
tim008 0:3279bf1609c1 25 if(first[0]<second[0])
tim008 0:3279bf1609c1 26 {
tim008 0:3279bf1609c1 27 xmin=first[0];
tim008 0:3279bf1609c1 28 xmax=second[0];
tim008 0:3279bf1609c1 29 }
tim008 0:3279bf1609c1 30 else
tim008 0:3279bf1609c1 31 {
tim008 0:3279bf1609c1 32 xmin=second[0];
tim008 0:3279bf1609c1 33 xmax=first[0];
tim008 0:3279bf1609c1 34 }
tim008 0:3279bf1609c1 35 }
tim008 0:3279bf1609c1 36
tim008 0:3279bf1609c1 37 void setY()
tim008 0:3279bf1609c1 38 {
tim008 0:3279bf1609c1 39
tim008 0:3279bf1609c1 40 if(first[1]<second[1])
tim008 0:3279bf1609c1 41 {
tim008 0:3279bf1609c1 42 ymin=first[1];
tim008 0:3279bf1609c1 43 ymax=second[1];
tim008 0:3279bf1609c1 44 }
tim008 0:3279bf1609c1 45 else
tim008 0:3279bf1609c1 46 {
tim008 0:3279bf1609c1 47 ymin=second[1];
tim008 0:3279bf1609c1 48 ymax=first[1];
tim008 0:3279bf1609c1 49 }
tim008 0:3279bf1609c1 50 }
tim008 0:3279bf1609c1 51
tim008 0:3279bf1609c1 52
tim008 0:3279bf1609c1 53
tim008 0:3279bf1609c1 54
tim008 0:3279bf1609c1 55 void readX()
tim008 0:3279bf1609c1 56 {
tim008 0:3279bf1609c1 57 if(VRx<1.0/3.3)
tim008 0:3279bf1609c1 58 point[0]--;
tim008 0:3279bf1609c1 59 if(VRx>2.0/3.3)
tim008 0:3279bf1609c1 60 point[0]++;
tim008 0:3279bf1609c1 61
tim008 0:3279bf1609c1 62 }
tim008 0:3279bf1609c1 63 void readY()
tim008 0:3279bf1609c1 64 {
tim008 0:3279bf1609c1 65 if(VRy<1.0/3.3)
tim008 0:3279bf1609c1 66 point[1]--;
tim008 0:3279bf1609c1 67 if(VRy>2.0/3.3)
tim008 0:3279bf1609c1 68 point[1]++;
tim008 0:3279bf1609c1 69
tim008 0:3279bf1609c1 70 }
tim008 0:3279bf1609c1 71
tim008 0:3279bf1609c1 72
tim008 0:3279bf1609c1 73
tim008 0:3279bf1609c1 74 void displayCrosshair()
tim008 0:3279bf1609c1 75 {
tim008 0:3279bf1609c1 76 int points[4]={point[0]-1,point[0]+1,point[1]-1,point[1]+1};
tim008 0:3279bf1609c1 77 if(points[0]>0&&lcd.getPixel(points[0],point[1])==0)
tim008 0:3279bf1609c1 78 {
tim008 0:3279bf1609c1 79 lcd.setPixel(points[0],point[1]);
tim008 0:3279bf1609c1 80 crosshair[0]=true;
tim008 0:3279bf1609c1 81 }
tim008 0:3279bf1609c1 82 if(points[1]<83&&lcd.getPixel(points[1],point[1])==0)
tim008 0:3279bf1609c1 83 {
tim008 0:3279bf1609c1 84 lcd.setPixel(points[1],point[1]);
tim008 0:3279bf1609c1 85 crosshair[1]=true;
tim008 0:3279bf1609c1 86 }
tim008 0:3279bf1609c1 87 if(points[2]>0&&lcd.getPixel(point[0],points[2])==0)
tim008 0:3279bf1609c1 88 {
tim008 0:3279bf1609c1 89 lcd.setPixel(point[0],points[2]);
tim008 0:3279bf1609c1 90 crosshair[2]=true;
tim008 0:3279bf1609c1 91 }
tim008 0:3279bf1609c1 92 if(points[3]<43&&lcd.getPixel(point[0],points[3])==0)
tim008 0:3279bf1609c1 93 {
tim008 0:3279bf1609c1 94 lcd.setPixel(point[0],points[3]);
tim008 0:3279bf1609c1 95 crosshair[3]=true;
tim008 0:3279bf1609c1 96 }
tim008 0:3279bf1609c1 97 }
tim008 0:3279bf1609c1 98
tim008 0:3279bf1609c1 99 void hideCrosshair()
tim008 0:3279bf1609c1 100 {
tim008 0:3279bf1609c1 101 int points[4]={point[0]-1,point[0]+1,point[1]-1,point[1]+1};
tim008 0:3279bf1609c1 102 if(points[0]>0&&crosshair[0])
tim008 0:3279bf1609c1 103 {
tim008 0:3279bf1609c1 104 lcd.clearPixel(points[0],point[1]);
tim008 0:3279bf1609c1 105 crosshair[0]=false;
tim008 0:3279bf1609c1 106 }
tim008 0:3279bf1609c1 107 if(points[1]<83&&crosshair[1])
tim008 0:3279bf1609c1 108 {
tim008 0:3279bf1609c1 109 lcd.clearPixel(points[1],point[1]);
tim008 0:3279bf1609c1 110 crosshair[1]=false;
tim008 0:3279bf1609c1 111 }
tim008 0:3279bf1609c1 112 if(points[2]>0&&crosshair[2])
tim008 0:3279bf1609c1 113 {
tim008 0:3279bf1609c1 114 lcd.clearPixel(point[0],points[2]);
tim008 0:3279bf1609c1 115 crosshair[2]=false;
tim008 0:3279bf1609c1 116 }
tim008 0:3279bf1609c1 117 if(points[3]<43&&crosshair[3])
tim008 0:3279bf1609c1 118 {
tim008 0:3279bf1609c1 119 lcd.clearPixel(point[0],points[3]);
tim008 0:3279bf1609c1 120 crosshair[3]=false;
tim008 0:3279bf1609c1 121 }
tim008 0:3279bf1609c1 122
tim008 0:3279bf1609c1 123 }
tim008 0:3279bf1609c1 124
tim008 0:3279bf1609c1 125 void displayPoint()
tim008 0:3279bf1609c1 126 {
tim008 0:3279bf1609c1 127 hideCrosshair();
tim008 0:3279bf1609c1 128 lcd.refresh();
tim008 0:3279bf1609c1 129
tim008 0:3279bf1609c1 130 readX();
tim008 0:3279bf1609c1 131 readY();
tim008 0:3279bf1609c1 132
tim008 0:3279bf1609c1 133 displayCrosshair();
tim008 0:3279bf1609c1 134 lcd.refresh();
tim008 0:3279bf1609c1 135 }
tim008 0:3279bf1609c1 136
tim008 0:3279bf1609c1 137
tim008 0:3279bf1609c1 138 void paint()
tim008 0:3279bf1609c1 139 {
tim008 0:3279bf1609c1 140 setX();
tim008 0:3279bf1609c1 141 setY();
tim008 0:3279bf1609c1 142
tim008 0:3279bf1609c1 143 for(int i=xmin;i<=xmax;i++)
tim008 0:3279bf1609c1 144 {
tim008 0:3279bf1609c1 145 for(int j=ymin;j<ymax;j++)
tim008 0:3279bf1609c1 146 {
tim008 0:3279bf1609c1 147 lcd.setPixel(i,j);
tim008 0:3279bf1609c1 148 }
tim008 0:3279bf1609c1 149 }
tim008 0:3279bf1609c1 150 lcd.refresh();
tim008 0:3279bf1609c1 151 }
tim008 0:3279bf1609c1 152
tim008 0:3279bf1609c1 153
tim008 0:3279bf1609c1 154 void buttonPress()
tim008 0:3279bf1609c1 155 {
tim008 0:3279bf1609c1 156 if(set)
tim008 0:3279bf1609c1 157 {
tim008 0:3279bf1609c1 158 if(press.read_ms()>200)
tim008 0:3279bf1609c1 159 {
tim008 0:3279bf1609c1 160 set=!set;
tim008 0:3279bf1609c1 161 first[0]=point[0];
tim008 0:3279bf1609c1 162 first[1]=point[1];
tim008 0:3279bf1609c1 163 lcd.setPixel(first[0],first[1]);
tim008 0:3279bf1609c1 164 lcd.refresh();
tim008 0:3279bf1609c1 165 press.reset();
tim008 0:3279bf1609c1 166 }
tim008 0:3279bf1609c1 167 }
tim008 0:3279bf1609c1 168 else if(!set)
tim008 0:3279bf1609c1 169 {
tim008 0:3279bf1609c1 170 if(press.read_ms()>200&&press.read_ms()<500)
tim008 0:3279bf1609c1 171 {
tim008 0:3279bf1609c1 172 lcd.clear();
tim008 0:3279bf1609c1 173 point[0]=15;
tim008 0:3279bf1609c1 174 point[1]=15;
tim008 0:3279bf1609c1 175 displayPoint();
tim008 0:3279bf1609c1 176 press.reset();
tim008 0:3279bf1609c1 177 set=!set;
tim008 0:3279bf1609c1 178 }
tim008 0:3279bf1609c1 179
tim008 0:3279bf1609c1 180 else if(press.read_ms()>200)
tim008 0:3279bf1609c1 181 { second[0]=point[0];
tim008 0:3279bf1609c1 182 second[1]=point[1];
tim008 0:3279bf1609c1 183 lcd.setPixel(second[0],second[1]);
tim008 0:3279bf1609c1 184 paint();
tim008 0:3279bf1609c1 185 first[0]=0;
tim008 0:3279bf1609c1 186 first[1]=0;
tim008 0:3279bf1609c1 187 second[0]=0;
tim008 0:3279bf1609c1 188 second[1]=0;
tim008 0:3279bf1609c1 189 press.reset();
tim008 0:3279bf1609c1 190 set=!set;
tim008 0:3279bf1609c1 191 }
tim008 0:3279bf1609c1 192
tim008 0:3279bf1609c1 193 lcd.refresh();
tim008 0:3279bf1609c1 194
tim008 0:3279bf1609c1 195 }
tim008 0:3279bf1609c1 196
tim008 0:3279bf1609c1 197 }
tim008 0:3279bf1609c1 198
tim008 0:3279bf1609c1 199 int main() {
tim008 0:3279bf1609c1 200 lcd.init();
tim008 0:3279bf1609c1 201 lcd.setXYAddress(0,0);
tim008 0:3279bf1609c1 202 point[0]=15;
tim008 0:3279bf1609c1 203 point[1]=15;
tim008 0:3279bf1609c1 204 press.start();
tim008 0:3279bf1609c1 205 SW.mode(PullUp);
tim008 0:3279bf1609c1 206 SW.rise(buttonPress);
tim008 0:3279bf1609c1 207 ticker.attach(displayPoint,0.25);
tim008 0:3279bf1609c1 208 while(1) {
tim008 0:3279bf1609c1 209
tim008 0:3279bf1609c1 210 }
tim008 0:3279bf1609c1 211 }