school project

Dependencies:   MMA8451Q mbed

Revision:
5:d6738e1238d8
Parent:
4:4930b1cb20bd
Child:
6:5711a5b57d17
--- a/main.cpp	Tue Jan 12 19:43:31 2016 +0000
+++ b/main.cpp	Tue Jan 12 20:10:13 2016 +0000
@@ -2,7 +2,7 @@
 #include "MMA8451Q.h"
  
 #define MMA8451_I2C_ADDRESS (0x1d<<1)
-#define MOVE_ANGLE 45   // > degrees for move 
+#define MOVE_ANGLE 35   // > degrees for move 
 
 MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
 
@@ -11,14 +11,14 @@
 void barva(int,int);
 void pohyb(void);
 
- int i,j,k;
+ int i,j,k,p;
  int RED, GREEN, BLUE;
  int RledA, RledB, GledA, GledB, BledA, BledB;
  float xAngle, yAngle;
  
  char acc_dir;
  
- int pole[4][4]={{0,0,4,2}, {16,8,2,0}, {0,0,8,0}, {0,0,0,0}};
+ int pole[4][4]={{7,0,0,7}, {0,0,0,0}, {0,0,0,0}, {7,0,0,7}};
 
 DigitalOut prvni(PTE5);
 DigitalOut druhy(PTE4);
@@ -71,24 +71,40 @@
 {
     switch(acc_dir)
     {
-    case 'D':
-        pole[3][3]=8;
+    case 'D': //pohyb smerem dolu
+        if(p==0)
+        {
+        pole[0][0]*=(-1);
+        p=1;
+        }
         break;
-    case 'R':
-        pole[3][3]=6;
-        break;
-    case 'U':
-        pole[3][3]=4;
+    case 'R': // pohyb smerem doprava
+        if(p==0)
+        {
+        pole[3][0]*=(-1);
+        p=1;
+        }
         break;
-    case 'L':
-        pole[3][3]=2;
+    case 'U': // pohyb smerem nahoru
+        if(p==0)
+        {
+        pole[0][3]*=(-1);
+        p=1;
+        }
         break;
-    case '0':
-        pole[3][3]=0;
+    case 'L': // pohyb smerem doleva
+        if(p==0)
+        {
+        pole[3][3]*=(-1);
+        p=1;
+        }
         break;
-    
+    case '0': // detekovana nulova pozice
+        p=0;
+        break;
     default:
-        break;  
+        break; 
+        
     }
 }