tim004 tim004
/
LV7_Grupa3_Tim004_Zadatak1
Mirza Omerović Predrag Simanić
main.cpp@0:b50b7e510883, 2014-04-28 (annotated)
- Committer:
- tim004
- Date:
- Mon Apr 28 15:57:22 2014 +0000
- Revision:
- 0:b50b7e510883
LV7 - PAI- Grupa3- Tim004-Zadatak1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tim004 | 0:b50b7e510883 | 1 | #include "mbed.h" |
tim004 | 0:b50b7e510883 | 2 | #include "N5110.h" |
tim004 | 0:b50b7e510883 | 3 | |
tim004 | 0:b50b7e510883 | 4 | #define MAXWIDTH 84 |
tim004 | 0:b50b7e510883 | 5 | #define MAXHEIGHT 48 |
tim004 | 0:b50b7e510883 | 6 | |
tim004 | 0:b50b7e510883 | 7 | Timer t; |
tim004 | 0:b50b7e510883 | 8 | DigitalOut enable(dp14); |
tim004 | 0:b50b7e510883 | 9 | InterruptIn taster(dp1); |
tim004 | 0:b50b7e510883 | 10 | int X=0;int Y=0; |
tim004 | 0:b50b7e510883 | 11 | int x1=90,y1=90,x2,y2; |
tim004 | 0:b50b7e510883 | 12 | AnalogIn VRx(dp11); |
tim004 | 0:b50b7e510883 | 13 | AnalogIn VRy(dp10); |
tim004 | 0:b50b7e510883 | 14 | DigitalIn SW(dp9); |
tim004 | 0:b50b7e510883 | 15 | |
tim004 | 0:b50b7e510883 | 16 | N5110 lcd (dp4, dp24, dp23, dp25, dp2, dp6, dp18); |
tim004 | 0:b50b7e510883 | 17 | |
tim004 | 0:b50b7e510883 | 18 | void cursor(int x, int y) |
tim004 | 0:b50b7e510883 | 19 | { |
tim004 | 0:b50b7e510883 | 20 | for(int i=x; i<=x+2; i++) |
tim004 | 0:b50b7e510883 | 21 | for(int j=y; j<=y+2; j++) |
tim004 | 0:b50b7e510883 | 22 | {lcd.setXYAddress(0,0); |
tim004 | 0:b50b7e510883 | 23 | lcd.setPixel(i,j); |
tim004 | 0:b50b7e510883 | 24 | lcd.refresh(); |
tim004 | 0:b50b7e510883 | 25 | } |
tim004 | 0:b50b7e510883 | 26 | } |
tim004 | 0:b50b7e510883 | 27 | |
tim004 | 0:b50b7e510883 | 28 | void brisi(int x, int y) |
tim004 | 0:b50b7e510883 | 29 | { |
tim004 | 0:b50b7e510883 | 30 | for(int i=x; i<=x+2; i++) |
tim004 | 0:b50b7e510883 | 31 | for(int j=y; j<=y+2; j++) |
tim004 | 0:b50b7e510883 | 32 | { |
tim004 | 0:b50b7e510883 | 33 | lcd.clearPixel(i,j); |
tim004 | 0:b50b7e510883 | 34 | lcd.refresh(); |
tim004 | 0:b50b7e510883 | 35 | } |
tim004 | 0:b50b7e510883 | 36 | } |
tim004 | 0:b50b7e510883 | 37 | |
tim004 | 0:b50b7e510883 | 38 | void Lijevo(int &x, int &y) |
tim004 | 0:b50b7e510883 | 39 | { |
tim004 | 0:b50b7e510883 | 40 | if(x>0){ |
tim004 | 0:b50b7e510883 | 41 | brisi(x,y); |
tim004 | 0:b50b7e510883 | 42 | x=x-1; |
tim004 | 0:b50b7e510883 | 43 | cursor(x,y); |
tim004 | 0:b50b7e510883 | 44 | |
tim004 | 0:b50b7e510883 | 45 | } |
tim004 | 0:b50b7e510883 | 46 | } |
tim004 | 0:b50b7e510883 | 47 | |
tim004 | 0:b50b7e510883 | 48 | void Desno(int &x, int &y) |
tim004 | 0:b50b7e510883 | 49 | { |
tim004 | 0:b50b7e510883 | 50 | if(x<81){ |
tim004 | 0:b50b7e510883 | 51 | brisi(x,y); |
tim004 | 0:b50b7e510883 | 52 | x=x+1; |
tim004 | 0:b50b7e510883 | 53 | cursor(x,y); |
tim004 | 0:b50b7e510883 | 54 | } |
tim004 | 0:b50b7e510883 | 55 | } |
tim004 | 0:b50b7e510883 | 56 | |
tim004 | 0:b50b7e510883 | 57 | void Gore(int &x, int &y) |
tim004 | 0:b50b7e510883 | 58 | { |
tim004 | 0:b50b7e510883 | 59 | if(y>0){ |
tim004 | 0:b50b7e510883 | 60 | brisi(x,y); |
tim004 | 0:b50b7e510883 | 61 | y=y-1; |
tim004 | 0:b50b7e510883 | 62 | cursor(x,y); |
tim004 | 0:b50b7e510883 | 63 | } |
tim004 | 0:b50b7e510883 | 64 | } |
tim004 | 0:b50b7e510883 | 65 | |
tim004 | 0:b50b7e510883 | 66 | void Dole(int &x, int &y) |
tim004 | 0:b50b7e510883 | 67 | { |
tim004 | 0:b50b7e510883 | 68 | if(y<45){ |
tim004 | 0:b50b7e510883 | 69 | brisi(x,y); |
tim004 | 0:b50b7e510883 | 70 | y=y+1; |
tim004 | 0:b50b7e510883 | 71 | cursor(x,y); |
tim004 | 0:b50b7e510883 | 72 | } |
tim004 | 0:b50b7e510883 | 73 | } |
tim004 | 0:b50b7e510883 | 74 | |
tim004 | 0:b50b7e510883 | 75 | void line(int x0,int y0,int x2,int y2) |
tim004 | 0:b50b7e510883 | 76 | { |
tim004 | 0:b50b7e510883 | 77 | |
tim004 | 0:b50b7e510883 | 78 | int dx=x2-x0,dy=y2-y0; |
tim004 | 0:b50b7e510883 | 79 | int p=2*dy-dx,i=dx; |
tim004 | 0:b50b7e510883 | 80 | while(i!=0) |
tim004 | 0:b50b7e510883 | 81 | { |
tim004 | 0:b50b7e510883 | 82 | cursor(x0,y0); |
tim004 | 0:b50b7e510883 | 83 | if(p<0) |
tim004 | 0:b50b7e510883 | 84 | { |
tim004 | 0:b50b7e510883 | 85 | x0=x0+1; |
tim004 | 0:b50b7e510883 | 86 | p=p+2*dy; |
tim004 | 0:b50b7e510883 | 87 | } |
tim004 | 0:b50b7e510883 | 88 | else |
tim004 | 0:b50b7e510883 | 89 | { |
tim004 | 0:b50b7e510883 | 90 | x0=x0+1; |
tim004 | 0:b50b7e510883 | 91 | y0=y0+1; |
tim004 | 0:b50b7e510883 | 92 | p=p+2*dy-2*dx; |
tim004 | 0:b50b7e510883 | 93 | } |
tim004 | 0:b50b7e510883 | 94 | if(i>=0) i--; |
tim004 | 0:b50b7e510883 | 95 | else i++; |
tim004 | 0:b50b7e510883 | 96 | } |
tim004 | 0:b50b7e510883 | 97 | } |
tim004 | 0:b50b7e510883 | 98 | |
tim004 | 0:b50b7e510883 | 99 | |
tim004 | 0:b50b7e510883 | 100 | static int a =1; |
tim004 | 0:b50b7e510883 | 101 | void tacka() |
tim004 | 0:b50b7e510883 | 102 | { |
tim004 | 0:b50b7e510883 | 103 | |
tim004 | 0:b50b7e510883 | 104 | if(t.read_ms() > 400) |
tim004 | 0:b50b7e510883 | 105 | if(a%2!=0) {x1=X; y1=Y;a++;} |
tim004 | 0:b50b7e510883 | 106 | else{ |
tim004 | 0:b50b7e510883 | 107 | x2=X; y2=Y; |
tim004 | 0:b50b7e510883 | 108 | line(x1,y1,x2,y2); |
tim004 | 0:b50b7e510883 | 109 | wait(5); |
tim004 | 0:b50b7e510883 | 110 | lcd.clear(); |
tim004 | 0:b50b7e510883 | 111 | lcd.setXYAddress(0,0); |
tim004 | 0:b50b7e510883 | 112 | x1=90; y1=90; lcd.setXYAddress(0,0); X=0; Y=0;a=1; |
tim004 | 0:b50b7e510883 | 113 | |
tim004 | 0:b50b7e510883 | 114 | } |
tim004 | 0:b50b7e510883 | 115 | t.reset(); |
tim004 | 0:b50b7e510883 | 116 | } |
tim004 | 0:b50b7e510883 | 117 | |
tim004 | 0:b50b7e510883 | 118 | int main(){ |
tim004 | 0:b50b7e510883 | 119 | |
tim004 | 0:b50b7e510883 | 120 | enable = 1; |
tim004 | 0:b50b7e510883 | 121 | SW.mode(PullUp); |
tim004 | 0:b50b7e510883 | 122 | t.start(); |
tim004 | 0:b50b7e510883 | 123 | lcd.init(); |
tim004 | 0:b50b7e510883 | 124 | |
tim004 | 0:b50b7e510883 | 125 | |
tim004 | 0:b50b7e510883 | 126 | lcd.setXYAddress(X,Y); |
tim004 | 0:b50b7e510883 | 127 | cursor(X,Y); |
tim004 | 0:b50b7e510883 | 128 | taster.rise(&tacka); |
tim004 | 0:b50b7e510883 | 129 | while(1){ |
tim004 | 0:b50b7e510883 | 130 | if(VRx < 1.0/3.0) Lijevo(X,Y); |
tim004 | 0:b50b7e510883 | 131 | else if(VRx > 2.0/3.0) Desno(X,Y); |
tim004 | 0:b50b7e510883 | 132 | |
tim004 | 0:b50b7e510883 | 133 | if(VRy < 1.0/3.0) Gore(X,Y); |
tim004 | 0:b50b7e510883 | 134 | else if(VRy > 2.0/3.0) Dole(X,Y); |
tim004 | 0:b50b7e510883 | 135 | |
tim004 | 0:b50b7e510883 | 136 | cursor(x1,y1); |
tim004 | 0:b50b7e510883 | 137 | |
tim004 | 0:b50b7e510883 | 138 | } |
tim004 | 0:b50b7e510883 | 139 | } |