Roman Ciesarík
/
Semestralna_praca_Roman_Ciesarik
Semestrálna práca VÝTAH Roman Ciesarík
Diff: main.cpp
- 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 */