Amra Dautbegović Luka Pejović

Dependencies:   N5110 mbed

Revision:
0:be75535cf4b1
Child:
1:f6c556b8e9e0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Apr 28 17:50:51 2014 +0000
@@ -0,0 +1,168 @@
+#include "mbed.h"
+#include "N5110.h"
+ 
+AnalogIn VRx (dp11);
+AnalogIn VRy (dp10);
+class Ekran: public N5110
+{
+    public:
+   
+    void setPixel(int x, int y)
+    {
+        if(x < 0 || x > 83)
+            return;
+        if(y < 0 || y > 47)
+            return;
+            
+        N5110::setPixel(x,y); 
+    }
+};
+N5110 lcd (dp13 ,dp24 ,dp23 ,dp25 ,dp2 ,dp6 , dp18);
+
+ 
+int X,Y, VIx, VIy;
+
+int px, py, pvx, pvy;
+int brojac = 0;
+DigitalOut enable(dp14);
+
+
+
+    
+    
+
+void crtaj()
+{
+    //clear baklava
+    lcd.clearPixel(px, py);
+    lcd.clearPixel(px+1, py);
+    lcd.clearPixel(px+2, py);
+    lcd.clearPixel(px-1, py);
+    lcd.clearPixel(px-2, py);
+    lcd.clearPixel(px, py+1);
+    lcd.clearPixel(px, py+2);
+    lcd.clearPixel(px, py-1);
+    lcd.clearPixel(px, py-2);
+    lcd.clearPixel(px+1, py+1);
+    lcd.clearPixel(px+1, py-1);
+    lcd.clearPixel(px-1, py-1);
+    lcd.clearPixel(px-1, py+1);
+    
+    px = X;
+    py = Y;
+    //crtaj baklava
+    lcd.setPixel(X, Y);
+    lcd.setPixel(X+1, Y);
+    lcd.setPixel(X+2, Y);
+    lcd.setPixel(X-1, Y);
+    lcd.setPixel(X-2, Y);
+    lcd.setPixel(X, Y+1);
+    lcd.setPixel(X, Y+2);
+    lcd.setPixel(X, Y-1);
+    lcd.setPixel(X, Y-2);
+    lcd.setPixel(X+1, Y+1);
+    lcd.setPixel(X+1, Y-1);
+    lcd.setPixel(X-1, Y-1);
+    lcd.setPixel(X-1, Y+1);
+    
+    //clear viljuska
+    lcd.clearPixel(pvx-3, pvy-3);
+    lcd.clearPixel(pvx-3, pvy-4);
+    lcd.clearPixel(pvx-3, pvy-5);
+    lcd.clearPixel(pvx-4, pvy-6);
+    lcd.clearPixel(pvx-5, pvy-3);
+    lcd.clearPixel(pvx-5, pvy-4);
+    lcd.clearPixel(pvx-5, pvy-5);
+    lcd.clearPixel(pvx-5, pvy-6);
+    lcd.clearPixel(pvx-5, pvy-7);
+    lcd.clearPixel(pvx-5, pvy-8);
+    lcd.clearPixel(pvx-5, pvy-9);
+    lcd.clearPixel(pvx-5, pvy-10);
+    lcd.clearPixel(pvx-6, pvy-6);
+    lcd.clearPixel(pvx-7, pvy-5);
+    lcd.clearPixel(pvx-7, pvy-4);
+    lcd.clearPixel(pvx-7, pvy-3);
+    
+    pvx = VIx;
+    pvy = VIy;
+    //viljuska
+    lcd.setPixel(VIx-3, VIy-3);
+    lcd.setPixel(VIx-3, VIy-4);
+    lcd.setPixel(VIx-3, VIy-5);
+    lcd.setPixel(VIx-4, VIy-6);
+    lcd.setPixel(VIx-5, VIy-3);
+    lcd.setPixel(VIx-5, VIy-4);
+    lcd.setPixel(VIx-5, VIy-5);
+    lcd.setPixel(VIx-5, VIy-6);
+    lcd.setPixel(VIx-5, VIy-7);
+    lcd.setPixel(VIx-5, VIy-8);
+    lcd.setPixel(VIx-5, VIy-9);
+    lcd.setPixel(VIx-5, VIy-10);
+    lcd.setPixel(VIx-6, VIy-6);
+    lcd.setPixel(VIx-7, VIy-5);
+    lcd.setPixel(VIx-7, VIy-4);
+    lcd.setPixel(VIx-7, VIy-3);
+    
+    lcd.refresh();
+}
+
+void update(){
+    
+    if (VRx<1.0/3.0){
+        if(X >= 9)X--;
+    }
+    else if (VRx > 2.0/3.0){
+        if( X <= 78)X++;
+    }
+    
+    if (VRy<1.0/3.0){
+        if(Y >= 12)Y--;
+    }
+    else if (VRy > 2.0/3.0){
+        if( Y <= 42)Y++;
+    }
+    
+    
+}
+
+void updateViljuska()
+{
+    VIx = (VIx - X)*2/3 + X;
+    VIy = (VIy - Y)*2/3 + Y;
+    /*
+    if(X > VIx) VIx++;
+    else if( X < VIx) VIx--;
+    
+    if(Y > VIy) VIy++;
+    else if(Y < VIy) VIy--; */
+}
+ 
+int main()
+{
+    enable = 1;
+    
+    lcd.init();
+    
+    lcd.clear();
+    Timer timer, t2;
+    timer.start();
+    t2.start();
+    VIx = VIy = X = Y = 24;
+    
+    while(1) {
+        if(timer.read_ms() > 100)
+        {
+            update();
+            timer.reset();
+            timer.start();
+        }
+        if(t2.read_ms() > 500)
+        {
+            updateViljuska();
+            t2.reset();
+            t2.start();   
+        }
+        lcd.setXYAddress(0,0);
+        crtaj();
+    }
+}
\ No newline at end of file