Mirza Omerović Predrag Simanić

Dependencies:   N5110 mbed

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?

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