tim004 tim004
/
LV7_Grupa3_Tim004_Zadatak1
Mirza Omerović Predrag Simanić
main.cpp
- Committer:
- tim004
- Date:
- 2014-04-28
- Revision:
- 0:b50b7e510883
File content as of revision 0:b50b7e510883:
#include "mbed.h" #include "N5110.h" #define MAXWIDTH 84 #define MAXHEIGHT 48 Timer t; DigitalOut enable(dp14); InterruptIn taster(dp1); int X=0;int Y=0; int x1=90,y1=90,x2,y2; AnalogIn VRx(dp11); AnalogIn VRy(dp10); DigitalIn SW(dp9); N5110 lcd (dp4, dp24, dp23, dp25, dp2, dp6, dp18); void cursor(int x, int y) { for(int i=x; i<=x+2; i++) for(int j=y; j<=y+2; j++) {lcd.setXYAddress(0,0); lcd.setPixel(i,j); lcd.refresh(); } } void brisi(int x, int y) { for(int i=x; i<=x+2; i++) for(int j=y; j<=y+2; j++) { lcd.clearPixel(i,j); lcd.refresh(); } } void Lijevo(int &x, int &y) { if(x>0){ brisi(x,y); x=x-1; cursor(x,y); } } void Desno(int &x, int &y) { if(x<81){ brisi(x,y); x=x+1; cursor(x,y); } } void Gore(int &x, int &y) { if(y>0){ brisi(x,y); y=y-1; cursor(x,y); } } void Dole(int &x, int &y) { if(y<45){ brisi(x,y); y=y+1; cursor(x,y); } } void line(int x0,int y0,int x2,int y2) { int dx=x2-x0,dy=y2-y0; int p=2*dy-dx,i=dx; while(i!=0) { cursor(x0,y0); if(p<0) { x0=x0+1; p=p+2*dy; } else { x0=x0+1; y0=y0+1; p=p+2*dy-2*dx; } if(i>=0) i--; else i++; } } static int a =1; void tacka() { if(t.read_ms() > 400) if(a%2!=0) {x1=X; y1=Y;a++;} else{ x2=X; y2=Y; line(x1,y1,x2,y2); wait(5); lcd.clear(); lcd.setXYAddress(0,0); x1=90; y1=90; lcd.setXYAddress(0,0); X=0; Y=0;a=1; } t.reset(); } int main(){ enable = 1; SW.mode(PullUp); t.start(); lcd.init(); lcd.setXYAddress(X,Y); cursor(X,Y); taster.rise(&tacka); while(1){ if(VRx < 1.0/3.0) Lijevo(X,Y); else if(VRx > 2.0/3.0) Desno(X,Y); if(VRy < 1.0/3.0) Gore(X,Y); else if(VRy > 2.0/3.0) Dole(X,Y); cursor(x1,y1); } }