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

Dependencies:   MMA8451Q mbed

Committer:
Ciesarik3
Date:
Sun Jan 07 21:09:44 2018 +0000
Revision:
9:51cf1120b4f4
Parent:
8:9686195ddf1d
Child:
10:346a5a5936b9
okrem noise a watchdog;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ciesarik3 0:40602b91b27f 1 #include "mbed.h"
Ciesarik3 1:6c18e74f3ff4 2 #include "headre.h"
Ciesarik3 9:51cf1120b4f4 3 #include "FreeFall.h"
Ciesarik3 0:40602b91b27f 4
Ciesarik3 1:6c18e74f3ff4 5 Serial pc(USBTX, USBRX, 57600);
Ciesarik3 0:40602b91b27f 6
Ciesarik3 0:40602b91b27f 7 int i;
Ciesarik3 1:6c18e74f3ff4 8 unsigned int velkost;
Ciesarik3 7:8786833154ff 9 char crc=0x00;
Ciesarik3 9:51cf1120b4f4 10
Ciesarik3 1:6c18e74f3ff4 11 char crc8table[256] = {
Ciesarik3 0:40602b91b27f 12 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
Ciesarik3 0:40602b91b27f 13 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
Ciesarik3 0:40602b91b27f 14 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,
Ciesarik3 0:40602b91b27f 15 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,
Ciesarik3 0:40602b91b27f 16 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
Ciesarik3 0:40602b91b27f 17 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
Ciesarik3 0:40602b91b27f 18 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
Ciesarik3 0:40602b91b27f 19 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
Ciesarik3 0:40602b91b27f 20 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
Ciesarik3 0:40602b91b27f 21 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
Ciesarik3 0:40602b91b27f 22 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
Ciesarik3 0:40602b91b27f 23 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
Ciesarik3 0:40602b91b27f 24 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
Ciesarik3 0:40602b91b27f 25 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
Ciesarik3 0:40602b91b27f 26 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
Ciesarik3 0:40602b91b27f 27 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
Ciesarik3 7:8786833154ff 28 };
Ciesarik3 1:6c18e74f3ff4 29
Ciesarik3 1:6c18e74f3ff4 30 // crc [0xA0, prijem, odosielatel, vrlkost dat , data (256),crc]
Ciesarik3 1:6c18e74f3ff4 31 //char odosli[5+sizeof(DATA)];
Ciesarik3 9:51cf1120b4f4 32 DigitalOut myled(LED3);
Ciesarik3 8:9686195ddf1d 33 DigitalOut myled2(LED2);
Ciesarik3 0:40602b91b27f 34
Ciesarik3 0:40602b91b27f 35
Ciesarik3 9:51cf1120b4f4 36
Ciesarik3 4:f2b6a3558671 37 char prijemSpravy[30];
Ciesarik3 8:9686195ddf1d 38 char diode_DATA[]={0x00,0x01};
Ciesarik3 8:9686195ddf1d 39 int diode_cislo[]={0,0,0,0,0};
Ciesarik3 2:84b5e49b4549 40 int stav=5;
Ciesarik3 8:9686195ddf1d 41 int poradie[]={0,0,0,0,0};
Ciesarik3 8:9686195ddf1d 42
Ciesarik3 5:c1952cbf8111 43
Ciesarik3 1:6c18e74f3ff4 44
Ciesarik3 8:9686195ddf1d 45 char buffer_kto[100];
Ciesarik3 8:9686195ddf1d 46 char buffer_co[100];
Ciesarik3 8:9686195ddf1d 47 int buff_index=0;
Ciesarik3 8:9686195ddf1d 48 int cyklus=0;
Ciesarik3 1:6c18e74f3ff4 49
Ciesarik3 0:40602b91b27f 50 int main()
Ciesarik3 0:40602b91b27f 51 {
Ciesarik3 4:f2b6a3558671 52 pc.attach(&prijmemSpravu);
Ciesarik3 9:51cf1120b4f4 53 init_freeFall();
Ciesarik3 2:84b5e49b4549 54 //dole();
Ciesarik3 8:9686195ddf1d 55 while(true)
Ciesarik3 8:9686195ddf1d 56 {
Ciesarik3 9:51cf1120b4f4 57 //init_freeFall();
Ciesarik3 8:9686195ddf1d 58 rozhodni();
Ciesarik3 9:51cf1120b4f4 59 if(freeFall_status()){
Ciesarik3 9:51cf1120b4f4 60 zamkni();
Ciesarik3 9:51cf1120b4f4 61 stop();
Ciesarik3 9:51cf1120b4f4 62 myled=1;
Ciesarik3 9:51cf1120b4f4 63 myled2=1;
Ciesarik3 9:51cf1120b4f4 64 break;
Ciesarik3 9:51cf1120b4f4 65 }
Ciesarik3 8:9686195ddf1d 66 /* for(int i=0;i<5;i++)
Ciesarik3 8:9686195ddf1d 67 if(diode_cislo[i]!=0)
Ciesarik3 8:9686195ddf1d 68 {
Ciesarik3 8:9686195ddf1d 69 if(i<stav){dole();break;}
Ciesarik3 8:9686195ddf1d 70 else {hore();break;}
Ciesarik3 8:9686195ddf1d 71 }
Ciesarik3 8:9686195ddf1d 72 */
Ciesarik3 7:8786833154ff 73 /*
Ciesarik3 8:9686195ddf1d 74 if(cyklus<100)
Ciesarik3 8:9686195ddf1d 75 {
Ciesarik3 8:9686195ddf1d 76 rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 77 cyklus++;
Ciesarik3 8:9686195ddf1d 78 }
Ciesarik3 8:9686195ddf1d 79 else
Ciesarik3 8:9686195ddf1d 80 {
Ciesarik3 8:9686195ddf1d 81 cyklus=0;
Ciesarik3 8:9686195ddf1d 82 rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 83 cyklus++;
Ciesarik3 6:83b531eead03 84 }
Ciesarik3 8:9686195ddf1d 85 */
Ciesarik3 8:9686195ddf1d 86
Ciesarik3 8:9686195ddf1d 87 /*stop();
Ciesarik3 8:9686195ddf1d 88 wait(1);
Ciesarik3 8:9686195ddf1d 89 hore();*/
Ciesarik3 8:9686195ddf1d 90 }
Ciesarik3 1:6c18e74f3ff4 91 }
Ciesarik3 5:c1952cbf8111 92
Ciesarik3 8:9686195ddf1d 93 void pohyb(int kam)
Ciesarik3 5:c1952cbf8111 94 {
Ciesarik3 5:c1952cbf8111 95 zamkni();
Ciesarik3 9:51cf1120b4f4 96 if (stav <kam) {hore();vytahDisplay(1,kam);}
Ciesarik3 9:51cf1120b4f4 97 if (stav >kam) {dole();vytahDisplay(2,kam);}
Ciesarik3 4:f2b6a3558671 98
Ciesarik3 8:9686195ddf1d 99 /*
Ciesarik3 4:f2b6a3558671 100 switch(stav)
Ciesarik3 4:f2b6a3558671 101 {
Ciesarik3 4:f2b6a3558671 102 case 5: dole(); break;
Ciesarik3 8:9686195ddf1d 103 case 4:
Ciesarik3 4:f2b6a3558671 104 if(diode_cislo[4]==1)
Ciesarik3 4:f2b6a3558671 105 break;
Ciesarik3 4:f2b6a3558671 106 case 3: break;
Ciesarik3 4:f2b6a3558671 107 case 2: break;
Ciesarik3 4:f2b6a3558671 108 case 1: break;
Ciesarik3 4:f2b6a3558671 109 case 0: break;
Ciesarik3 4:f2b6a3558671 110 default: break;
Ciesarik3 8:9686195ddf1d 111 }*/
Ciesarik3 3:ac8b2de52239 112 }
Ciesarik3 9:51cf1120b4f4 113 void vytahDisplay(int smer, int poschodie)
Ciesarik3 9:51cf1120b4f4 114 {
Ciesarik3 9:51cf1120b4f4 115 char dPole [2];
Ciesarik3 9:51cf1120b4f4 116 switch(smer)
Ciesarik3 9:51cf1120b4f4 117 {
Ciesarik3 9:51cf1120b4f4 118
Ciesarik3 9:51cf1120b4f4 119 case 0: dPole[0]=0xFF; break;
Ciesarik3 9:51cf1120b4f4 120 case 1: dPole[0]=0x01; break;//hore
Ciesarik3 9:51cf1120b4f4 121 case 2: dPole[0]=0x02; break;//dole
Ciesarik3 9:51cf1120b4f4 122 }
Ciesarik3 9:51cf1120b4f4 123 switch(poschodie)
Ciesarik3 9:51cf1120b4f4 124 {
Ciesarik3 9:51cf1120b4f4 125 case 0: dPole[1]=0x50; break;
Ciesarik3 9:51cf1120b4f4 126 case 1: dPole[1]=0x31; break;
Ciesarik3 9:51cf1120b4f4 127 case 2: dPole[1]=0x32; break;
Ciesarik3 9:51cf1120b4f4 128 case 3: dPole[1]=0x33; break;
Ciesarik3 9:51cf1120b4f4 129 case 4: dPole[1]=0x34; break;
Ciesarik3 9:51cf1120b4f4 130 default:
Ciesarik3 9:51cf1120b4f4 131 dPole[1]=0x2D;
Ciesarik3 9:51cf1120b4f4 132 }
Ciesarik3 9:51cf1120b4f4 133
Ciesarik3 9:51cf1120b4f4 134 poslemSpravu(DISPLAY, 0xcc, 0x02, dPole);
Ciesarik3 9:51cf1120b4f4 135 }
Ciesarik3 5:c1952cbf8111 136
Ciesarik3 3:ac8b2de52239 137
Ciesarik3 1:6c18e74f3ff4 138 void zamkni()
Ciesarik3 8:9686195ddf1d 139 {
Ciesarik3 8:9686195ddf1d 140
Ciesarik3 1:6c18e74f3ff4 141 char DATA[]= {0x01};
Ciesarik3 1:6c18e74f3ff4 142 poslemSpravu(VYTAH,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 143 }
Ciesarik3 1:6c18e74f3ff4 144
Ciesarik3 1:6c18e74f3ff4 145 void odomkni()
Ciesarik3 1:6c18e74f3ff4 146 {
Ciesarik3 8:9686195ddf1d 147 wait(1);
Ciesarik3 1:6c18e74f3ff4 148 char DATA[]= {0x00};
Ciesarik3 1:6c18e74f3ff4 149 poslemSpravu(VYTAH,0xcc,sizeof(DATA),DATA);
Ciesarik3 8:9686195ddf1d 150 wait(1);
Ciesarik3 1:6c18e74f3ff4 151 }
Ciesarik3 1:6c18e74f3ff4 152
Ciesarik3 1:6c18e74f3ff4 153 void stop()
Ciesarik3 1:6c18e74f3ff4 154 {
Ciesarik3 1:6c18e74f3ff4 155 char DATA[]= {0x01};
Ciesarik3 1:6c18e74f3ff4 156 poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 157 }
Ciesarik3 1:6c18e74f3ff4 158
Ciesarik3 1:6c18e74f3ff4 159 void hore()
Ciesarik3 1:6c18e74f3ff4 160 {
Ciesarik3 1:6c18e74f3ff4 161 char DATA[]= {0x02,0x64,0x00,0x00,0x00};
Ciesarik3 8:9686195ddf1d 162 poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 163 }
Ciesarik3 1:6c18e74f3ff4 164
Ciesarik3 1:6c18e74f3ff4 165 void dole()
Ciesarik3 1:6c18e74f3ff4 166 {
Ciesarik3 1:6c18e74f3ff4 167 char DATA[]= {0x02,0x9c,0xff,0xff,0xff};
Ciesarik3 1:6c18e74f3ff4 168 poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 169 }
Ciesarik3 1:6c18e74f3ff4 170
Ciesarik3 2:84b5e49b4549 171 void prijmemSpravu()
Ciesarik3 2:84b5e49b4549 172 {
Ciesarik3 8:9686195ddf1d 173 //pc.attach(&prijmemSpravu);§
Ciesarik3 8:9686195ddf1d 174 myled=0;
Ciesarik3 6:83b531eead03 175
Ciesarik3 8:9686195ddf1d 176 for (int j=0;j<4;j++)
Ciesarik3 8:9686195ddf1d 177 {
Ciesarik3 8:9686195ddf1d 178 while(true)
Ciesarik3 8:9686195ddf1d 179 {
Ciesarik3 8:9686195ddf1d 180 if(pc.readable()==1)
Ciesarik3 8:9686195ddf1d 181 {
Ciesarik3 8:9686195ddf1d 182 prijemSpravy[j]=pc.getc();
Ciesarik3 8:9686195ddf1d 183 break;
Ciesarik3 6:83b531eead03 184 }
Ciesarik3 8:9686195ddf1d 185 }
Ciesarik3 2:84b5e49b4549 186 }
Ciesarik3 8:9686195ddf1d 187
Ciesarik3 8:9686195ddf1d 188 int pom= prijemSpravy[3] + 1;
Ciesarik3 2:84b5e49b4549 189
Ciesarik3 8:9686195ddf1d 190 for (int j=0;j<pom;j++)
Ciesarik3 8:9686195ddf1d 191 {
Ciesarik3 8:9686195ddf1d 192 while(true)
Ciesarik3 8:9686195ddf1d 193 {
Ciesarik3 8:9686195ddf1d 194 if(pc.readable()==1)
Ciesarik3 8:9686195ddf1d 195 {
Ciesarik3 8:9686195ddf1d 196 prijemSpravy[j+4]=pc.getc();
Ciesarik3 8:9686195ddf1d 197 break;
Ciesarik3 8:9686195ddf1d 198 }
Ciesarik3 8:9686195ddf1d 199 }
Ciesarik3 8:9686195ddf1d 200 }
Ciesarik3 8:9686195ddf1d 201 // if(buff_index<100)
Ciesarik3 8:9686195ddf1d 202 // {
Ciesarik3 8:9686195ddf1d 203 buffer_kto[buff_index]=prijemSpravy[2];
Ciesarik3 8:9686195ddf1d 204 buffer_co[buff_index]=prijemSpravy[4];
Ciesarik3 8:9686195ddf1d 205 // buff_index++;
Ciesarik3 8:9686195ddf1d 206 /*}
Ciesarik3 8:9686195ddf1d 207 else
Ciesarik3 8:9686195ddf1d 208 {
Ciesarik3 8:9686195ddf1d 209 buff_index=0;
Ciesarik3 8:9686195ddf1d 210 buffer_kto[buff_index]=prijemSpravy[2];
Ciesarik3 8:9686195ddf1d 211 buffer_co[buff_index]=prijemSpravy[4];
Ciesarik3 8:9686195ddf1d 212 buff_index++;
Ciesarik3 8:9686195ddf1d 213 }*/
Ciesarik3 8:9686195ddf1d 214 myled=1;
Ciesarik3 8:9686195ddf1d 215 pc.attach(&prijmemSpravu);
Ciesarik3 2:84b5e49b4549 216 }
Ciesarik3 1:6c18e74f3ff4 217
Ciesarik3 3:ac8b2de52239 218 void rozhodni()
Ciesarik3 8:9686195ddf1d 219 {
Ciesarik3 8:9686195ddf1d 220 myled2=0;
Ciesarik3 8:9686195ddf1d 221 char bData=buffer_co[cyklus];
Ciesarik3 8:9686195ddf1d 222 switch(buffer_kto[cyklus])
Ciesarik3 8:9686195ddf1d 223 {
Ciesarik3 3:ac8b2de52239 224 case 0xb4: /* vytah tla4idlo 4 poschodie */
Ciesarik3 8:9686195ddf1d 225 poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 226 diode_cislo[4]=1;
Ciesarik3 8:9686195ddf1d 227
Ciesarik3 8:9686195ddf1d 228 pohyb(4);
Ciesarik3 8:9686195ddf1d 229
Ciesarik3 8:9686195ddf1d 230 break;
Ciesarik3 8:9686195ddf1d 231
Ciesarik3 6:83b531eead03 232 case 0xb3: /* vytah tla4idlo 3 poschodie */
Ciesarik3 8:9686195ddf1d 233 poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 234 diode_cislo[3]=1;
Ciesarik3 8:9686195ddf1d 235 pohyb(3);
Ciesarik3 6:83b531eead03 236
Ciesarik3 8:9686195ddf1d 237 break;
Ciesarik3 8:9686195ddf1d 238
Ciesarik3 8:9686195ddf1d 239 case 0xb2: /* vytah tla4idlo 2 poschodie */
Ciesarik3 8:9686195ddf1d 240 poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 241 diode_cislo[2]=1;
Ciesarik3 8:9686195ddf1d 242 pohyb(2);
Ciesarik3 8:9686195ddf1d 243 break;
Ciesarik3 8:9686195ddf1d 244
Ciesarik3 8:9686195ddf1d 245 case 0xb1: /* vytah tla4idlo 1 poschodie */
Ciesarik3 8:9686195ddf1d 246 poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 247 diode_cislo[1]=1;
Ciesarik3 8:9686195ddf1d 248 pohyb(1);
Ciesarik3 8:9686195ddf1d 249 break;
Ciesarik3 8:9686195ddf1d 250
Ciesarik3 8:9686195ddf1d 251 case 0xb0: /* vytah tla4idlo pr9zemie */
Ciesarik3 8:9686195ddf1d 252 poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 253 diode_cislo[0]=1;
Ciesarik3 8:9686195ddf1d 254 pohyb(0);
Ciesarik3 8:9686195ddf1d 255 break;
Ciesarik3 8:9686195ddf1d 256
Ciesarik3 6:83b531eead03 257 case 0xc4: /* chodba tla4idlo 4 poschodie */
Ciesarik3 8:9686195ddf1d 258 poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 259 diode_cislo[4]=1;
Ciesarik3 8:9686195ddf1d 260 pohyb(4);
Ciesarik3 8:9686195ddf1d 261 break;
Ciesarik3 8:9686195ddf1d 262
Ciesarik3 6:83b531eead03 263 case 0xc3: /* chodba tla4idlo 3 poschodie */
Ciesarik3 8:9686195ddf1d 264 poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 265 diode_cislo[3]=1;
Ciesarik3 8:9686195ddf1d 266 pohyb(3);
Ciesarik3 8:9686195ddf1d 267 break;
Ciesarik3 8:9686195ddf1d 268
Ciesarik3 6:83b531eead03 269 case 0xc2: /* chodba tla4idlo 2 poschodie */
Ciesarik3 8:9686195ddf1d 270 poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 271 diode_cislo[2]=1;
Ciesarik3 8:9686195ddf1d 272 pohyb(2);
Ciesarik3 8:9686195ddf1d 273 break;
Ciesarik3 8:9686195ddf1d 274
Ciesarik3 6:83b531eead03 275 case 0xc1: /* chodba tla4idlo 1 poschodie */
Ciesarik3 8:9686195ddf1d 276 poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 277 diode_cislo[1]=1;
Ciesarik3 8:9686195ddf1d 278 pohyb(1);
Ciesarik3 8:9686195ddf1d 279 break;
Ciesarik3 8:9686195ddf1d 280
Ciesarik3 6:83b531eead03 281 case 0xc0: /* chodba tla4idlo pr9zemie */
Ciesarik3 8:9686195ddf1d 282 poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 283 diode_cislo[0]=1;
Ciesarik3 8:9686195ddf1d 284 pohyb(0);
Ciesarik3 8:9686195ddf1d 285 break;
Ciesarik3 8:9686195ddf1d 286
Ciesarik3 8:9686195ddf1d 287
Ciesarik3 8:9686195ddf1d 288
Ciesarik3 8:9686195ddf1d 289
Ciesarik3 8:9686195ddf1d 290 case 0xe4: /* info pre odomknutie 4 poschodie */
Ciesarik3 8:9686195ddf1d 291 if(bData==0x01&&diode_cislo[4]==1){stop();
Ciesarik3 8:9686195ddf1d 292 poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 293 poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 294 diode_cislo[4]=0;
Ciesarik3 8:9686195ddf1d 295 stav=4;}
Ciesarik3 8:9686195ddf1d 296 if(bData==0x02&&stav==4){wait(1);odomkni();//}
Ciesarik3 8:9686195ddf1d 297 /*for (int kk=0;kk<5;kk++)
Ciesarik3 8:9686195ddf1d 298 {}*/
Ciesarik3 8:9686195ddf1d 299 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 300 else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 301 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 302 else if (diode_cislo[3]==1) pohyb(3);}
Ciesarik3 8:9686195ddf1d 303 //else if (diode_cislo[4]==1) pohyb(4);
Ciesarik3 6:83b531eead03 304
Ciesarik3 6:83b531eead03 305
Ciesarik3 8:9686195ddf1d 306 break;
Ciesarik3 8:9686195ddf1d 307
Ciesarik3 8:9686195ddf1d 308 case 0xe3: /* info pre odomknutie 3 poschodie */
Ciesarik3 8:9686195ddf1d 309 if(bData==0x01&&diode_cislo[3]==1){stop();
Ciesarik3 8:9686195ddf1d 310 poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 311 poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 312 diode_cislo[3]=0;
Ciesarik3 8:9686195ddf1d 313 stav=3;}
Ciesarik3 8:9686195ddf1d 314 if(bData==0x02&&stav==3){wait(1);odomkni();
Ciesarik3 6:83b531eead03 315
Ciesarik3 8:9686195ddf1d 316 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 317 else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 318 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 319 //else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 320 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 8:9686195ddf1d 321 break;
Ciesarik3 8:9686195ddf1d 322
Ciesarik3 8:9686195ddf1d 323 case 0xe2: /* info pre odomknutie 2 poschodie */
Ciesarik3 8:9686195ddf1d 324 if(bData==0x01&&diode_cislo[2]==1){stop();
Ciesarik3 8:9686195ddf1d 325 poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 326 poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 327 diode_cislo[2]=0;
Ciesarik3 8:9686195ddf1d 328 stav=2;}
Ciesarik3 8:9686195ddf1d 329 if(bData==0x02&&stav==2){wait(1);odomkni();//}
Ciesarik3 8:9686195ddf1d 330
Ciesarik3 9:51cf1120b4f4 331 //vytahDisplay(2,2);
Ciesarik3 9:51cf1120b4f4 332
Ciesarik3 8:9686195ddf1d 333 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 334 else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 335 // else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 336 else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 337 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 6:83b531eead03 338
Ciesarik3 8:9686195ddf1d 339 break;
Ciesarik3 8:9686195ddf1d 340
Ciesarik3 8:9686195ddf1d 341 case 0xe1: /* info pre odomknutie 1 poschodie */
Ciesarik3 8:9686195ddf1d 342 if(bData==0x01&&diode_cislo[1]==1){stop();
Ciesarik3 8:9686195ddf1d 343 poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 344 poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 345 diode_cislo[1]=0;
Ciesarik3 8:9686195ddf1d 346 stav=1;}
Ciesarik3 8:9686195ddf1d 347 if(bData==0x02&&stav==1){wait(1);odomkni();//}
Ciesarik3 8:9686195ddf1d 348
Ciesarik3 8:9686195ddf1d 349 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 350 // else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 351 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 352 else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 353 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 6:83b531eead03 354
Ciesarik3 8:9686195ddf1d 355 break;
Ciesarik3 8:9686195ddf1d 356
Ciesarik3 8:9686195ddf1d 357 case 0xe0: /* info pre odomknutie prízemie */
Ciesarik3 8:9686195ddf1d 358 if(bData==0x01&&diode_cislo[0]==1){stop();
Ciesarik3 8:9686195ddf1d 359 poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 360 poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 361 diode_cislo[0]=0;
Ciesarik3 8:9686195ddf1d 362 stav=0;}
Ciesarik3 8:9686195ddf1d 363 if(bData==0x02&&stav==0){wait(1);odomkni();//}
Ciesarik3 6:83b531eead03 364
Ciesarik3 8:9686195ddf1d 365 //if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 366 if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 367 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 368 else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 369 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 8:9686195ddf1d 370
Ciesarik3 8:9686195ddf1d 371 break;
Ciesarik3 5:c1952cbf8111 372
Ciesarik3 5:c1952cbf8111 373
Ciesarik3 8:9686195ddf1d 374
Ciesarik3 3:ac8b2de52239 375
Ciesarik3 8:9686195ddf1d 376
Ciesarik3 8:9686195ddf1d 377 case 0xf: /* zachranna brzda */
Ciesarik3 6:83b531eead03 378
Ciesarik3 8:9686195ddf1d 379 break;
Ciesarik3 3:ac8b2de52239 380
Ciesarik3 8:9686195ddf1d 381 case 0xfe: /* watchdog */
Ciesarik3 6:83b531eead03 382
Ciesarik3 8:9686195ddf1d 383 break;
Ciesarik3 8:9686195ddf1d 384 default: break;
Ciesarik3 8:9686195ddf1d 385 }
Ciesarik3 8:9686195ddf1d 386 /*if(cyklus<100)
Ciesarik3 8:9686195ddf1d 387 {
Ciesarik3 8:9686195ddf1d 388 //rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 389 cyklus++;
Ciesarik3 8:9686195ddf1d 390 }
Ciesarik3 8:9686195ddf1d 391 else
Ciesarik3 8:9686195ddf1d 392 {
Ciesarik3 8:9686195ddf1d 393 cyklus=0;
Ciesarik3 8:9686195ddf1d 394 //rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 395 //cyklus++;
Ciesarik3 6:83b531eead03 396 }
Ciesarik3 8:9686195ddf1d 397 */ //pc.attach(&prijmemSpravu);
Ciesarik3 8:9686195ddf1d 398 myled=1;
Ciesarik3 3:ac8b2de52239 399 }
Ciesarik3 3:ac8b2de52239 400
Ciesarik3 1:6c18e74f3ff4 401 void poslemSpravu(char adrRX, char adrTX, int velkost, char DATA[] )
Ciesarik3 1:6c18e74f3ff4 402 {
Ciesarik3 1:6c18e74f3ff4 403 crc=0x00;
Ciesarik3 1:6c18e74f3ff4 404 char odosli[5+velkost];
Ciesarik3 1:6c18e74f3ff4 405 odosli[0]=0xA0;
Ciesarik3 1:6c18e74f3ff4 406 odosli[1]=adrRX;
Ciesarik3 1:6c18e74f3ff4 407 odosli[2]=adrTX;
Ciesarik3 1:6c18e74f3ff4 408 odosli[3]=velkost;
Ciesarik3 1:6c18e74f3ff4 409
Ciesarik3 1:6c18e74f3ff4 410 crc=crc8table[crc^adrRX];
Ciesarik3 1:6c18e74f3ff4 411 crc=crc8table[crc^adrTX];
Ciesarik3 1:6c18e74f3ff4 412
Ciesarik3 1:6c18e74f3ff4 413 for (i=0; i<velkost; i++) {
Ciesarik3 1:6c18e74f3ff4 414 odosli[4+i]=DATA[i];
Ciesarik3 1:6c18e74f3ff4 415 }
Ciesarik3 1:6c18e74f3ff4 416
Ciesarik3 1:6c18e74f3ff4 417 for (i=0; i<velkost; i++) {
Ciesarik3 1:6c18e74f3ff4 418 crc=crc8table[crc^DATA[i]];
Ciesarik3 1:6c18e74f3ff4 419 }
Ciesarik3 1:6c18e74f3ff4 420
Ciesarik3 1:6c18e74f3ff4 421 odosli[velkost+4]=crc;
Ciesarik3 1:6c18e74f3ff4 422
Ciesarik3 1:6c18e74f3ff4 423 for (i=0; i<velkost+5; i++) {
Ciesarik3 1:6c18e74f3ff4 424 pc.putc(odosli[i]);
Ciesarik3 1:6c18e74f3ff4 425 }
Ciesarik3 1:6c18e74f3ff4 426
Ciesarik3 1:6c18e74f3ff4 427 }
Ciesarik3 1:6c18e74f3ff4 428