Semestrálna práca VÝTAH Roman Ciesarík

Dependencies:   MMA8451Q mbed

Revision:
5:c1952cbf8111
Parent:
4:f2b6a3558671
Child:
6:83b531eead03
--- a/main.cpp	Tue Dec 12 20:55:43 2017 +0000
+++ b/main.cpp	Thu Jan 04 23:04:53 2018 +0000
@@ -1,6 +1,10 @@
 #include "mbed.h"
 #include "headre.h"
+#include "definicie.h"
 
+
+
+/*
 #define DISPLAY     0x30    // DATA smer  0x01-> UP 0x02-> DOWN , text (string)
 #define TERMINAL    0xD0    // Vypise vsetko
 
@@ -40,11 +44,12 @@
 #define MOTOR   0xf1    // DATA 0x1-> STOP 0x02-> UP/DOWN 32bit <-100,100> 0x3-> MOTOR ENCODER COUNT (double)
 #define WATCHDOG 0xfe   // DATA 0x01-> time out ELSE regular reset ( 1500ms )
 
+*/
 Serial pc(USBTX, USBRX, 57600);
 
 int i;
 unsigned int velkost;
-char crc=0x00;
+char crc=0x00;/*
 char crc8table[256] = {
     0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
     157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
@@ -62,7 +67,7 @@
     87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
     233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
     116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
-};
+};*/
 
 // crc [0xA0, prijem, odosielatel, vrlkost dat , data (256),crc]
 //char odosli[5+sizeof(DATA)];
@@ -74,7 +79,10 @@
 char diode_DATA[]={0x00,0x01};
 int diode_cislo[]={0,0,0,0,0};
 int stav=5;
-//int poradie[]={0,0,0,0,0};
+
+int poradie[]={0,0,0,0,0};
+int zar=0;
+int por=0;
 
 
 int main()
@@ -99,11 +107,28 @@
     hore();*/
 }   
 }
-/*
-void pohyb()
+
+void zarad(int co)
 {
+    if (zar<5)
+        {
+            poradie[zar]=co;
+            zar++;
+        }
+    else
+    {
+        poradie[0]=co;
+        zar=1;
+    }
+}
 
+void pohyb( )
+{
+    zamkni();
+    if (stav < poradie[por]) hore();
+    if (stav > poradie[por]) dole();
 
+    /*
     switch(stav)
     {
         case 5: dole(); break;
@@ -116,8 +141,9 @@
         case 0: break;
         default: break;
     }
+    */
 }
-*/
+
 
 void zamkni()
 {
@@ -179,18 +205,27 @@
     }
    pc.attach(&prijmemSpravu);
 }
+/*
+void obsluz(int cislo)
+{
+     poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]);
+        diode_cislo[4]=1; 
+        zamkni();
+    
+}
+*/
 
 void rozhodni()
 {
   switch(prijemSpravy[2])
     {
         case 0xb4: /* vytah tla4idlo 4 poschodie   */
-        poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]);
-        diode_cislo[4]=1; 
-        zamkni();
-        if (stav <4) hore();
-        if (stav >4) dole();
-        //dole();
+            if (diode_cislo[4]==0) { zarad(4);}    
+            poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]);
+            diode_cislo[4]=1; 
+        
+        
+        
             
         break;
         
@@ -271,12 +306,17 @@
         
         
         case 0xe4: /* info pre odomknutie 4 poschodie   */
+          
+          if(poradie[zar]==4) {
+           
             if(prijemSpravy[4]==0x01&&diode_cislo[4]==1){stop();
             poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[0]);
             poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[0]);
             diode_cislo[4]=0;
             stav=4;}
             if(prijemSpravy[4]==0x02&&stav==4){wait(1);odomkni();}
+        }
+        
         break;
         
         case 0xe3: /* info pre odomknutie 3 poschodie   */