
Semestrálna práca VÝTAH Roman Ciesarík
Diff: main.cpp
- Revision:
- 4:f2b6a3558671
- Parent:
- 3:ac8b2de52239
- Child:
- 5:c1952cbf8111
--- a/main.cpp Tue Dec 12 15:20:29 2017 +0000 +++ b/main.cpp Tue Dec 12 20:55:43 2017 +0000 @@ -70,32 +70,54 @@ char demo[]= {1,2,3,4,5,6}; -char prijemSpravy[15]; +char prijemSpravy[30]; char diode_DATA[]={0x00,0x01}; int diode_cislo[]={0,0,0,0,0}; int stav=5; +//int poradie[]={0,0,0,0,0}; int main() { - + pc.attach(&prijmemSpravu); //dole(); while(true) { - pc.attach(&prijmemSpravu); + rozhodni(); - + /* for(int i=0;i<5;i++) + if(diode_cislo[i]!=0) + { + if(i<stav){dole();break;} + else {hore();break;} + } + */ + /*stop(); wait(1); hore();*/ } } +/* void pohyb() { - + + + switch(stav) + { + case 5: dole(); break; + case 4: + if(diode_cislo[4]==1) + break; + case 3: break; + case 2: break; + case 1: break; + case 0: break; + default: break; + } } - +*/ void zamkni() { @@ -164,7 +186,10 @@ { case 0xb4: /* vytah tla4idlo 4 poschodie */ poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]); - diode_cislo[4]=1; + diode_cislo[4]=1; + zamkni(); + if (stav <4) hore(); + if (stav >4) dole(); //dole(); break; @@ -172,47 +197,73 @@ case 0xb3: /* vytah tla4idlo 3 poschodie */ poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[1]); diode_cislo[3]=1; + zamkni(); + if (stav <3) hore(); + if (stav >3) dole(); break; case 0xb2: /* vytah tla4idlo 2 poschodie */ poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[1]); diode_cislo[2]=1; - + zamkni(); + if (stav <2) hore(); + if (stav >2) dole(); break; case 0xb1: /* vytah tla4idlo 1 poschodie */ poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[1]); diode_cislo[1]=1; + zamkni(); + if (stav <1) hore(); + if (stav >1) dole(); break; case 0xb0: /* vytah tla4idlo pr9zemie */ poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[1]); diode_cislo[0]=1; + zamkni(); + if (stav <0) hore(); + if (stav >0) dole(); break; case 0xc4: /* chodba tla4idlo 4 poschodie */ poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[1]); diode_cislo[4]=1; + zamkni(); + if (stav <4) hore(); + if (stav >4) dole(); break; case 0xc3: /* chodba tla4idlo 3 poschodie */ poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[1]); diode_cislo[3]=1; + zamkni(); + if (stav <3) hore(); + if (stav >3) dole(); break; case 0xc2: /* chodba tla4idlo 2 poschodie */ poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[1]); diode_cislo[2]=1; + zamkni(); + if (stav <2) hore(); + if (stav >2) dole(); break; case 0xc1: /* chodba tla4idlo 1 poschodie */ poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[1]); diode_cislo[1]=1; + zamkni(); + if (stav <1) hore(); + if (stav >2) dole(); break; case 0xc0: /* chodba tla4idlo pr9zemie */ poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[1]); diode_cislo[0]=1; + zamkni(); + if (stav <0) hore(); + if (stav >0) dole(); //hore(); break; @@ -223,35 +274,45 @@ 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;} + diode_cislo[4]=0; + stav=4;} + if(prijemSpravy[4]==0x02&&stav==4){wait(1);odomkni();} break; case 0xe3: /* info pre odomknutie 3 poschodie */ if(prijemSpravy[4]==0x01&&diode_cislo[3]==1){stop(); poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[0]); poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[0]); - diode_cislo[3]=0;} + diode_cislo[3]=0; + stav=3;} + if(prijemSpravy[4]==0x02&&stav==3){wait(1);odomkni();} break; case 0xe2: /* info pre odomknutie 2 poschodie */ if(prijemSpravy[4]==0x01&&diode_cislo[2]==1){stop(); poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[0]); poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[0]); - diode_cislo[2]=0;} + diode_cislo[2]=0; + stav=2;} + if(prijemSpravy[4]==0x02&&stav==2){wait(1);odomkni();} break; case 0xe1: /* info pre odomknutie 1 poschodie */ if(prijemSpravy[4]==0x01&&diode_cislo[1]==1){stop(); poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[0]); poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[0]); - diode_cislo[1]=0;} + diode_cislo[1]=0; + stav=1;} + if(prijemSpravy[4]==0x02&&stav==1){wait(1);odomkni();} break; case 0xe0: /* info pre odomknutie prízemie */ if(prijemSpravy[4]==0x01&&diode_cislo[0]==1){stop(); poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[0]); poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[0]); - diode_cislo[0]=0;} + diode_cislo[0]=0; + stav=0;} + if(prijemSpravy[4]==0x02&&stav==0){wait(1);odomkni();} break; @@ -265,6 +326,7 @@ case 0xfe: /* watchdog */ break; + default: break; } }