semestralka
Dependencies: FRDM_MMA8451Q mbed
Vytah.cpp@0:6f3a386422fa, 2017-02-06 (annotated)
- Committer:
- seyfrid_L
- Date:
- Mon Feb 06 16:21:00 2017 +0000
- Revision:
- 0:6f3a386422fa
hotovo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
seyfrid_L | 0:6f3a386422fa | 1 | #include "mbed.h" |
seyfrid_L | 0:6f3a386422fa | 2 | #include "Header.h" |
seyfrid_L | 0:6f3a386422fa | 3 | #include "adresarik.h" |
seyfrid_L | 0:6f3a386422fa | 4 | |
seyfrid_L | 0:6f3a386422fa | 5 | |
seyfrid_L | 0:6f3a386422fa | 6 | |
seyfrid_L | 0:6f3a386422fa | 7 | int main() |
seyfrid_L | 0:6f3a386422fa | 8 | { |
seyfrid_L | 0:6f3a386422fa | 9 | term.baud(57600); |
seyfrid_L | 0:6f3a386422fa | 10 | term.attach(&prerusVysielanie, Serial::RxIrq); |
seyfrid_L | 0:6f3a386422fa | 11 | |
seyfrid_L | 0:6f3a386422fa | 12 | inicializuj(); |
seyfrid_L | 0:6f3a386422fa | 13 | sleduj_cas.attach(&watchdog, 1.4); |
seyfrid_L | 0:6f3a386422fa | 14 | sleduj_lcd.attach(&lcd_display,0.5); |
seyfrid_L | 0:6f3a386422fa | 15 | acc.MotionDetection(&nudzovaBrzda); |
seyfrid_L | 0:6f3a386422fa | 16 | |
seyfrid_L | 0:6f3a386422fa | 17 | while(1) { |
seyfrid_L | 0:6f3a386422fa | 18 | tlacitkoStena(); |
seyfrid_L | 0:6f3a386422fa | 19 | tlacitkoVytah(); |
seyfrid_L | 0:6f3a386422fa | 20 | } |
seyfrid_L | 0:6f3a386422fa | 21 | } |
seyfrid_L | 0:6f3a386422fa | 22 | |
seyfrid_L | 0:6f3a386422fa | 23 | /*****KOmunikacia******************************************************/ |
seyfrid_L | 0:6f3a386422fa | 24 | /*sekcia ktora riadi komunikaciu*/ |
seyfrid_L | 0:6f3a386422fa | 25 | |
seyfrid_L | 0:6f3a386422fa | 26 | void posliSpravu(int addrRx, int addrTx,int dataSize, int aData[]) |
seyfrid_L | 0:6f3a386422fa | 27 | { |
seyfrid_L | 0:6f3a386422fa | 28 | |
seyfrid_L | 0:6f3a386422fa | 29 | int aPacket[5+dataSize]; |
seyfrid_L | 0:6f3a386422fa | 30 | aPacket[0] = 0xA0; |
seyfrid_L | 0:6f3a386422fa | 31 | aPacket[1] = addrRx; |
seyfrid_L | 0:6f3a386422fa | 32 | aPacket[2] = addrTx; |
seyfrid_L | 0:6f3a386422fa | 33 | aPacket[3] = dataSize; |
seyfrid_L | 0:6f3a386422fa | 34 | |
seyfrid_L | 0:6f3a386422fa | 35 | for(int i = 0; i < dataSize; i++){ |
seyfrid_L | 0:6f3a386422fa | 36 | aPacket[4+i] = aData[i]; |
seyfrid_L | 0:6f3a386422fa | 37 | } |
seyfrid_L | 0:6f3a386422fa | 38 | |
seyfrid_L | 0:6f3a386422fa | 39 | int crc = getCrc(addrRx, addrTx, dataSize, aData); |
seyfrid_L | 0:6f3a386422fa | 40 | aPacket[4+dataSize] = crc; |
seyfrid_L | 0:6f3a386422fa | 41 | |
seyfrid_L | 0:6f3a386422fa | 42 | |
seyfrid_L | 0:6f3a386422fa | 43 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 44 | |
seyfrid_L | 0:6f3a386422fa | 45 | for(int i = 0; i < ARRAY_SIZE(aPacket); i++){ |
seyfrid_L | 0:6f3a386422fa | 46 | term.putc(aPacket[i]); |
seyfrid_L | 0:6f3a386422fa | 47 | } |
seyfrid_L | 0:6f3a386422fa | 48 | } |
seyfrid_L | 0:6f3a386422fa | 49 | |
seyfrid_L | 0:6f3a386422fa | 50 | int getCrc(int addrRx, int addrTx, int dataSize, int aData[]) |
seyfrid_L | 0:6f3a386422fa | 51 | { |
seyfrid_L | 0:6f3a386422fa | 52 | int aCRC[] = {0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, |
seyfrid_L | 0:6f3a386422fa | 53 | 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, |
seyfrid_L | 0:6f3a386422fa | 54 | 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, |
seyfrid_L | 0:6f3a386422fa | 55 | 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, |
seyfrid_L | 0:6f3a386422fa | 56 | 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, |
seyfrid_L | 0:6f3a386422fa | 57 | 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, |
seyfrid_L | 0:6f3a386422fa | 58 | 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, |
seyfrid_L | 0:6f3a386422fa | 59 | 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, |
seyfrid_L | 0:6f3a386422fa | 60 | 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, |
seyfrid_L | 0:6f3a386422fa | 61 | 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, |
seyfrid_L | 0:6f3a386422fa | 62 | 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, |
seyfrid_L | 0:6f3a386422fa | 63 | 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, |
seyfrid_L | 0:6f3a386422fa | 64 | 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, |
seyfrid_L | 0:6f3a386422fa | 65 | 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, |
seyfrid_L | 0:6f3a386422fa | 66 | 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, |
seyfrid_L | 0:6f3a386422fa | 67 | 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53 |
seyfrid_L | 0:6f3a386422fa | 68 | }; |
seyfrid_L | 0:6f3a386422fa | 69 | int crc = 0; |
seyfrid_L | 0:6f3a386422fa | 70 | crc = aCRC[crc ^ addrRx]; |
seyfrid_L | 0:6f3a386422fa | 71 | crc = aCRC[crc ^ addrTx]; |
seyfrid_L | 0:6f3a386422fa | 72 | for(int i = 0; i < dataSize; i++){ |
seyfrid_L | 0:6f3a386422fa | 73 | crc = aCRC[crc ^ aData[i]]; |
seyfrid_L | 0:6f3a386422fa | 74 | } |
seyfrid_L | 0:6f3a386422fa | 75 | return crc; |
seyfrid_L | 0:6f3a386422fa | 76 | } |
seyfrid_L | 0:6f3a386422fa | 77 | |
seyfrid_L | 0:6f3a386422fa | 78 | void inicializuj() |
seyfrid_L | 0:6f3a386422fa | 79 | { |
seyfrid_L | 0:6f3a386422fa | 80 | inicializacia = 1; |
seyfrid_L | 0:6f3a386422fa | 81 | resetuj_watchdog(); |
seyfrid_L | 0:6f3a386422fa | 82 | uvolniNB(); |
seyfrid_L | 0:6f3a386422fa | 83 | dole(); |
seyfrid_L | 0:6f3a386422fa | 84 | } |
seyfrid_L | 0:6f3a386422fa | 85 | |
seyfrid_L | 0:6f3a386422fa | 86 | void prerusVysielanie() |
seyfrid_L | 0:6f3a386422fa | 87 | { |
seyfrid_L | 0:6f3a386422fa | 88 | |
seyfrid_L | 0:6f3a386422fa | 89 | |
seyfrid_L | 0:6f3a386422fa | 90 | prijmi = 1; |
seyfrid_L | 0:6f3a386422fa | 91 | for(int i = 0; i < 4; i++) { |
seyfrid_L | 0:6f3a386422fa | 92 | adresa[i] = term.getc(); |
seyfrid_L | 0:6f3a386422fa | 93 | } |
seyfrid_L | 0:6f3a386422fa | 94 | |
seyfrid_L | 0:6f3a386422fa | 95 | |
seyfrid_L | 0:6f3a386422fa | 96 | if(adresa[3] == 0x00) { |
seyfrid_L | 0:6f3a386422fa | 97 | sprava[0] = term.getc(); |
seyfrid_L | 0:6f3a386422fa | 98 | }else{ |
seyfrid_L | 0:6f3a386422fa | 99 | for(int i = 0; i < adresa[3]; i++){ |
seyfrid_L | 0:6f3a386422fa | 100 | sprava[i]=term.getc(); |
seyfrid_L | 0:6f3a386422fa | 101 | } |
seyfrid_L | 0:6f3a386422fa | 102 | adresa[4]=term.getc(); |
seyfrid_L | 0:6f3a386422fa | 103 | if(adresa[4] == getCrc(adresa[1], adresa[2],adresa[3],sprava)){ |
seyfrid_L | 0:6f3a386422fa | 104 | |
seyfrid_L | 0:6f3a386422fa | 105 | } |
seyfrid_L | 0:6f3a386422fa | 106 | } |
seyfrid_L | 0:6f3a386422fa | 107 | |
seyfrid_L | 0:6f3a386422fa | 108 | riadeniePohybu(); |
seyfrid_L | 0:6f3a386422fa | 109 | |
seyfrid_L | 0:6f3a386422fa | 110 | |
seyfrid_L | 0:6f3a386422fa | 111 | } |
seyfrid_L | 0:6f3a386422fa | 112 | /****Pohy**************************************************************************/ |
seyfrid_L | 0:6f3a386422fa | 113 | /***sekcia Pohybu******************************************************************/ |
seyfrid_L | 0:6f3a386422fa | 114 | |
seyfrid_L | 0:6f3a386422fa | 115 | |
seyfrid_L | 0:6f3a386422fa | 116 | |
seyfrid_L | 0:6f3a386422fa | 117 | int dajPoziciu() |
seyfrid_L | 0:6f3a386422fa | 118 | { |
seyfrid_L | 0:6f3a386422fa | 119 | int pozicia; |
seyfrid_L | 0:6f3a386422fa | 120 | switch(adresa[2]){ |
seyfrid_L | 0:6f3a386422fa | 121 | case SWITCH_P:{ |
seyfrid_L | 0:6f3a386422fa | 122 | pozicia = SWITCH_P; |
seyfrid_L | 0:6f3a386422fa | 123 | cisloPochodia_dislpej = 0; |
seyfrid_L | 0:6f3a386422fa | 124 | break; |
seyfrid_L | 0:6f3a386422fa | 125 | } |
seyfrid_L | 0:6f3a386422fa | 126 | case SWITCH_1:{ |
seyfrid_L | 0:6f3a386422fa | 127 | pozicia = SWITCH_1; |
seyfrid_L | 0:6f3a386422fa | 128 | cisloPochodia_dislpej = 1; |
seyfrid_L | 0:6f3a386422fa | 129 | break; |
seyfrid_L | 0:6f3a386422fa | 130 | } |
seyfrid_L | 0:6f3a386422fa | 131 | case SWITCH_2:{ |
seyfrid_L | 0:6f3a386422fa | 132 | pozicia = SWITCH_2; |
seyfrid_L | 0:6f3a386422fa | 133 | cisloPochodia_dislpej = 2; |
seyfrid_L | 0:6f3a386422fa | 134 | break; |
seyfrid_L | 0:6f3a386422fa | 135 | } |
seyfrid_L | 0:6f3a386422fa | 136 | case SWITCH_3:{ |
seyfrid_L | 0:6f3a386422fa | 137 | pozicia = SWITCH_3; |
seyfrid_L | 0:6f3a386422fa | 138 | cisloPochodia_dislpej = 3; |
seyfrid_L | 0:6f3a386422fa | 139 | break; |
seyfrid_L | 0:6f3a386422fa | 140 | } |
seyfrid_L | 0:6f3a386422fa | 141 | case SWITCH_4:{ |
seyfrid_L | 0:6f3a386422fa | 142 | pozicia = SWITCH_4; |
seyfrid_L | 0:6f3a386422fa | 143 | cisloPochodia_dislpej = 4; |
seyfrid_L | 0:6f3a386422fa | 144 | break; |
seyfrid_L | 0:6f3a386422fa | 145 | } |
seyfrid_L | 0:6f3a386422fa | 146 | } |
seyfrid_L | 0:6f3a386422fa | 147 | return pozicia; |
seyfrid_L | 0:6f3a386422fa | 148 | } |
seyfrid_L | 0:6f3a386422fa | 149 | |
seyfrid_L | 0:6f3a386422fa | 150 | void tlacitkoVytah() |
seyfrid_L | 0:6f3a386422fa | 151 | { |
seyfrid_L | 0:6f3a386422fa | 152 | if(prijmi == 1){ |
seyfrid_L | 0:6f3a386422fa | 153 | switch(adresa[2]){ |
seyfrid_L | 0:6f3a386422fa | 154 | case C_P_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 155 | |
seyfrid_L | 0:6f3a386422fa | 156 | p_0 = 1; |
seyfrid_L | 0:6f3a386422fa | 157 | init_kabina++; |
seyfrid_L | 0:6f3a386422fa | 158 | if(kere_poschodie > 0){ |
seyfrid_L | 0:6f3a386422fa | 159 | dole(); |
seyfrid_L | 0:6f3a386422fa | 160 | }else if(kere_poschodie < 0){ |
seyfrid_L | 0:6f3a386422fa | 161 | hore(); |
seyfrid_L | 0:6f3a386422fa | 162 | }else{ |
seyfrid_L | 0:6f3a386422fa | 163 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 164 | p_0 = 0; |
seyfrid_L | 0:6f3a386422fa | 165 | |
seyfrid_L | 0:6f3a386422fa | 166 | } |
seyfrid_L | 0:6f3a386422fa | 167 | } |
seyfrid_L | 0:6f3a386422fa | 168 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 169 | break; |
seyfrid_L | 0:6f3a386422fa | 170 | } |
seyfrid_L | 0:6f3a386422fa | 171 | case C_1_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 172 | |
seyfrid_L | 0:6f3a386422fa | 173 | p_1 = 1; |
seyfrid_L | 0:6f3a386422fa | 174 | init_kabina++; |
seyfrid_L | 0:6f3a386422fa | 175 | if(kere_poschodie > 1){ |
seyfrid_L | 0:6f3a386422fa | 176 | dole(); |
seyfrid_L | 0:6f3a386422fa | 177 | }else if(kere_poschodie < 1){ |
seyfrid_L | 0:6f3a386422fa | 178 | hore(); |
seyfrid_L | 0:6f3a386422fa | 179 | }else{ |
seyfrid_L | 0:6f3a386422fa | 180 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 181 | p_1 = 0; |
seyfrid_L | 0:6f3a386422fa | 182 | |
seyfrid_L | 0:6f3a386422fa | 183 | } |
seyfrid_L | 0:6f3a386422fa | 184 | } |
seyfrid_L | 0:6f3a386422fa | 185 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 186 | break; |
seyfrid_L | 0:6f3a386422fa | 187 | } |
seyfrid_L | 0:6f3a386422fa | 188 | case C_2_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 189 | |
seyfrid_L | 0:6f3a386422fa | 190 | p_2 = 1; |
seyfrid_L | 0:6f3a386422fa | 191 | init_kabina++; |
seyfrid_L | 0:6f3a386422fa | 192 | if(kere_poschodie > 2){ |
seyfrid_L | 0:6f3a386422fa | 193 | dole(); |
seyfrid_L | 0:6f3a386422fa | 194 | }else if(kere_poschodie < 2){ |
seyfrid_L | 0:6f3a386422fa | 195 | hore(); |
seyfrid_L | 0:6f3a386422fa | 196 | }else{ |
seyfrid_L | 0:6f3a386422fa | 197 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 198 | p_2 = 0; |
seyfrid_L | 0:6f3a386422fa | 199 | |
seyfrid_L | 0:6f3a386422fa | 200 | } |
seyfrid_L | 0:6f3a386422fa | 201 | } |
seyfrid_L | 0:6f3a386422fa | 202 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 203 | break; |
seyfrid_L | 0:6f3a386422fa | 204 | } |
seyfrid_L | 0:6f3a386422fa | 205 | case C_3_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 206 | |
seyfrid_L | 0:6f3a386422fa | 207 | p_3 = 1; |
seyfrid_L | 0:6f3a386422fa | 208 | init_kabina++; |
seyfrid_L | 0:6f3a386422fa | 209 | if(kere_poschodie > 3){ |
seyfrid_L | 0:6f3a386422fa | 210 | dole(); |
seyfrid_L | 0:6f3a386422fa | 211 | }else if(kere_poschodie < 3){ |
seyfrid_L | 0:6f3a386422fa | 212 | hore(); |
seyfrid_L | 0:6f3a386422fa | 213 | }else{ |
seyfrid_L | 0:6f3a386422fa | 214 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 215 | p_3 = 0; |
seyfrid_L | 0:6f3a386422fa | 216 | |
seyfrid_L | 0:6f3a386422fa | 217 | } |
seyfrid_L | 0:6f3a386422fa | 218 | } |
seyfrid_L | 0:6f3a386422fa | 219 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 220 | break; |
seyfrid_L | 0:6f3a386422fa | 221 | } |
seyfrid_L | 0:6f3a386422fa | 222 | case C_4_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 223 | |
seyfrid_L | 0:6f3a386422fa | 224 | p_4 = 1; |
seyfrid_L | 0:6f3a386422fa | 225 | init_kabina++; |
seyfrid_L | 0:6f3a386422fa | 226 | if(kere_poschodie > 4){ |
seyfrid_L | 0:6f3a386422fa | 227 | dole(); |
seyfrid_L | 0:6f3a386422fa | 228 | }else if(kere_poschodie < 4){ |
seyfrid_L | 0:6f3a386422fa | 229 | hore(); |
seyfrid_L | 0:6f3a386422fa | 230 | }else{ |
seyfrid_L | 0:6f3a386422fa | 231 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 232 | p_4 = 0; |
seyfrid_L | 0:6f3a386422fa | 233 | |
seyfrid_L | 0:6f3a386422fa | 234 | } |
seyfrid_L | 0:6f3a386422fa | 235 | } |
seyfrid_L | 0:6f3a386422fa | 236 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 237 | break; |
seyfrid_L | 0:6f3a386422fa | 238 | } |
seyfrid_L | 0:6f3a386422fa | 239 | } |
seyfrid_L | 0:6f3a386422fa | 240 | } |
seyfrid_L | 0:6f3a386422fa | 241 | } |
seyfrid_L | 0:6f3a386422fa | 242 | |
seyfrid_L | 0:6f3a386422fa | 243 | void tlacitkoStena() |
seyfrid_L | 0:6f3a386422fa | 244 | { |
seyfrid_L | 0:6f3a386422fa | 245 | if(prijmi == 1){ |
seyfrid_L | 0:6f3a386422fa | 246 | switch(adresa[2]){ |
seyfrid_L | 0:6f3a386422fa | 247 | case W_P_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 248 | |
seyfrid_L | 0:6f3a386422fa | 249 | p_0 = 1; |
seyfrid_L | 0:6f3a386422fa | 250 | stena++; |
seyfrid_L | 0:6f3a386422fa | 251 | if(kere_poschodie > 0){ |
seyfrid_L | 0:6f3a386422fa | 252 | dole(); |
seyfrid_L | 0:6f3a386422fa | 253 | }else if(kere_poschodie < 0){ |
seyfrid_L | 0:6f3a386422fa | 254 | hore(); |
seyfrid_L | 0:6f3a386422fa | 255 | }else{ |
seyfrid_L | 0:6f3a386422fa | 256 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 257 | p_0 = 0; |
seyfrid_L | 0:6f3a386422fa | 258 | |
seyfrid_L | 0:6f3a386422fa | 259 | } |
seyfrid_L | 0:6f3a386422fa | 260 | } |
seyfrid_L | 0:6f3a386422fa | 261 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 262 | break; |
seyfrid_L | 0:6f3a386422fa | 263 | } |
seyfrid_L | 0:6f3a386422fa | 264 | case W_1_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 265 | |
seyfrid_L | 0:6f3a386422fa | 266 | p_1 = 1; |
seyfrid_L | 0:6f3a386422fa | 267 | stena++; |
seyfrid_L | 0:6f3a386422fa | 268 | if(kere_poschodie > 1){ |
seyfrid_L | 0:6f3a386422fa | 269 | dole(); |
seyfrid_L | 0:6f3a386422fa | 270 | }else if(kere_poschodie < 1){ |
seyfrid_L | 0:6f3a386422fa | 271 | hore(); |
seyfrid_L | 0:6f3a386422fa | 272 | }else{ |
seyfrid_L | 0:6f3a386422fa | 273 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 274 | p_1 = 0; |
seyfrid_L | 0:6f3a386422fa | 275 | |
seyfrid_L | 0:6f3a386422fa | 276 | } |
seyfrid_L | 0:6f3a386422fa | 277 | } |
seyfrid_L | 0:6f3a386422fa | 278 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 279 | break; |
seyfrid_L | 0:6f3a386422fa | 280 | } |
seyfrid_L | 0:6f3a386422fa | 281 | case W_2_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 282 | |
seyfrid_L | 0:6f3a386422fa | 283 | p_2 = 1; |
seyfrid_L | 0:6f3a386422fa | 284 | stena++; |
seyfrid_L | 0:6f3a386422fa | 285 | if(kere_poschodie > 2){ |
seyfrid_L | 0:6f3a386422fa | 286 | dole(); |
seyfrid_L | 0:6f3a386422fa | 287 | }else if(kere_poschodie < 2){ |
seyfrid_L | 0:6f3a386422fa | 288 | hore(); |
seyfrid_L | 0:6f3a386422fa | 289 | }else{ |
seyfrid_L | 0:6f3a386422fa | 290 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 291 | p_2 = 0; |
seyfrid_L | 0:6f3a386422fa | 292 | |
seyfrid_L | 0:6f3a386422fa | 293 | } |
seyfrid_L | 0:6f3a386422fa | 294 | } |
seyfrid_L | 0:6f3a386422fa | 295 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 296 | break; |
seyfrid_L | 0:6f3a386422fa | 297 | } |
seyfrid_L | 0:6f3a386422fa | 298 | case W_3_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 299 | |
seyfrid_L | 0:6f3a386422fa | 300 | p_3 = 1; |
seyfrid_L | 0:6f3a386422fa | 301 | stena++; |
seyfrid_L | 0:6f3a386422fa | 302 | if(kere_poschodie > 3){ |
seyfrid_L | 0:6f3a386422fa | 303 | dole(); |
seyfrid_L | 0:6f3a386422fa | 304 | }else if(kere_poschodie < 3){ |
seyfrid_L | 0:6f3a386422fa | 305 | hore(); |
seyfrid_L | 0:6f3a386422fa | 306 | }else{ |
seyfrid_L | 0:6f3a386422fa | 307 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 308 | p_3 = 0; |
seyfrid_L | 0:6f3a386422fa | 309 | |
seyfrid_L | 0:6f3a386422fa | 310 | } |
seyfrid_L | 0:6f3a386422fa | 311 | } |
seyfrid_L | 0:6f3a386422fa | 312 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 313 | break; |
seyfrid_L | 0:6f3a386422fa | 314 | } |
seyfrid_L | 0:6f3a386422fa | 315 | case W_4_BUTTON:{ |
seyfrid_L | 0:6f3a386422fa | 316 | |
seyfrid_L | 0:6f3a386422fa | 317 | p_4 = 1; |
seyfrid_L | 0:6f3a386422fa | 318 | stena++; |
seyfrid_L | 0:6f3a386422fa | 319 | if(kere_poschodie > 4){ |
seyfrid_L | 0:6f3a386422fa | 320 | dole(); |
seyfrid_L | 0:6f3a386422fa | 321 | }else if(kere_poschodie < 4){ |
seyfrid_L | 0:6f3a386422fa | 322 | hore(); |
seyfrid_L | 0:6f3a386422fa | 323 | }else{ |
seyfrid_L | 0:6f3a386422fa | 324 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 325 | p_4 = 0; |
seyfrid_L | 0:6f3a386422fa | 326 | |
seyfrid_L | 0:6f3a386422fa | 327 | } |
seyfrid_L | 0:6f3a386422fa | 328 | } |
seyfrid_L | 0:6f3a386422fa | 329 | prijmi = 0; |
seyfrid_L | 0:6f3a386422fa | 330 | break; |
seyfrid_L | 0:6f3a386422fa | 331 | } |
seyfrid_L | 0:6f3a386422fa | 332 | } |
seyfrid_L | 0:6f3a386422fa | 333 | } |
seyfrid_L | 0:6f3a386422fa | 334 | } |
seyfrid_L | 0:6f3a386422fa | 335 | |
seyfrid_L | 0:6f3a386422fa | 336 | void dockajNaPoschodi(){ |
seyfrid_L | 0:6f3a386422fa | 337 | dockaj++; |
seyfrid_L | 0:6f3a386422fa | 338 | if(dockaj > 5){ |
seyfrid_L | 0:6f3a386422fa | 339 | dockaj = 0; |
seyfrid_L | 0:6f3a386422fa | 340 | cakajNaPoschodi.detach(); |
seyfrid_L | 0:6f3a386422fa | 341 | pohniSa(); |
seyfrid_L | 0:6f3a386422fa | 342 | } |
seyfrid_L | 0:6f3a386422fa | 343 | } |
seyfrid_L | 0:6f3a386422fa | 344 | |
seyfrid_L | 0:6f3a386422fa | 345 | void zamkni() |
seyfrid_L | 0:6f3a386422fa | 346 | { |
seyfrid_L | 0:6f3a386422fa | 347 | int aDataIn[] = {0x01}; |
seyfrid_L | 0:6f3a386422fa | 348 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 349 | posliSpravu(C_LOCK,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 350 | } |
seyfrid_L | 0:6f3a386422fa | 351 | void unzamkni() |
seyfrid_L | 0:6f3a386422fa | 352 | { |
seyfrid_L | 0:6f3a386422fa | 353 | int aDataIn[] = {0x00}; |
seyfrid_L | 0:6f3a386422fa | 354 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 355 | posliSpravu(C_LOCK,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 356 | } |
seyfrid_L | 0:6f3a386422fa | 357 | |
seyfrid_L | 0:6f3a386422fa | 358 | void hore() |
seyfrid_L | 0:6f3a386422fa | 359 | { |
seyfrid_L | 0:6f3a386422fa | 360 | if(dockaj == 0){ |
seyfrid_L | 0:6f3a386422fa | 361 | pohyb++; |
seyfrid_L | 0:6f3a386422fa | 362 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 363 | init_pohyb = 1; |
seyfrid_L | 0:6f3a386422fa | 364 | zamkni(); |
seyfrid_L | 0:6f3a386422fa | 365 | int aDataIn[] = {0x2, 0x64, 0x00, 0x00, 0x00}; |
seyfrid_L | 0:6f3a386422fa | 366 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 367 | posliSpravu(MOTOR,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 368 | smer = 1; |
seyfrid_L | 0:6f3a386422fa | 369 | } |
seyfrid_L | 0:6f3a386422fa | 370 | if(pohyb > 2){ |
seyfrid_L | 0:6f3a386422fa | 371 | pohyb = 0; |
seyfrid_L | 0:6f3a386422fa | 372 | init_pohyb = 1; |
seyfrid_L | 0:6f3a386422fa | 373 | zamkni(); |
seyfrid_L | 0:6f3a386422fa | 374 | int aDataIn[] = {0x2, 0x64, 0x00, 0x00, 0x00}; |
seyfrid_L | 0:6f3a386422fa | 375 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 376 | posliSpravu(MOTOR,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 377 | smer = 1; |
seyfrid_L | 0:6f3a386422fa | 378 | } |
seyfrid_L | 0:6f3a386422fa | 379 | } |
seyfrid_L | 0:6f3a386422fa | 380 | } |
seyfrid_L | 0:6f3a386422fa | 381 | |
seyfrid_L | 0:6f3a386422fa | 382 | void dole() |
seyfrid_L | 0:6f3a386422fa | 383 | { |
seyfrid_L | 0:6f3a386422fa | 384 | if(dockaj == 0){ |
seyfrid_L | 0:6f3a386422fa | 385 | pohyb++; |
seyfrid_L | 0:6f3a386422fa | 386 | if(init_pohyb == 0){ |
seyfrid_L | 0:6f3a386422fa | 387 | init_pohyb = -1; |
seyfrid_L | 0:6f3a386422fa | 388 | zamkni(); |
seyfrid_L | 0:6f3a386422fa | 389 | int aDataIn[] = {0x2, 0x9C, 0xff, 0xff, 0xff}; |
seyfrid_L | 0:6f3a386422fa | 390 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 391 | posliSpravu(MOTOR,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 392 | smer = -1; |
seyfrid_L | 0:6f3a386422fa | 393 | } |
seyfrid_L | 0:6f3a386422fa | 394 | if(pohyb > 2){ |
seyfrid_L | 0:6f3a386422fa | 395 | pohyb = 0; |
seyfrid_L | 0:6f3a386422fa | 396 | init_pohyb = -1; |
seyfrid_L | 0:6f3a386422fa | 397 | zamkni(); |
seyfrid_L | 0:6f3a386422fa | 398 | int aDataIn[] = {0x2, 0x9C, 0xff, 0xff, 0xff}; |
seyfrid_L | 0:6f3a386422fa | 399 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 400 | posliSpravu(MOTOR,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 401 | smer = -1; |
seyfrid_L | 0:6f3a386422fa | 402 | } |
seyfrid_L | 0:6f3a386422fa | 403 | } |
seyfrid_L | 0:6f3a386422fa | 404 | } |
seyfrid_L | 0:6f3a386422fa | 405 | |
seyfrid_L | 0:6f3a386422fa | 406 | void zastav() |
seyfrid_L | 0:6f3a386422fa | 407 | { |
seyfrid_L | 0:6f3a386422fa | 408 | if(dockaj == 0){ |
seyfrid_L | 0:6f3a386422fa | 409 | init_pohyb = 0; |
seyfrid_L | 0:6f3a386422fa | 410 | int aDataIn[] = {0x1}; |
seyfrid_L | 0:6f3a386422fa | 411 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 412 | posliSpravu(MOTOR,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 413 | delayer.attach(&zamkni, 0.4); |
seyfrid_L | 0:6f3a386422fa | 414 | } |
seyfrid_L | 0:6f3a386422fa | 415 | } |
seyfrid_L | 0:6f3a386422fa | 416 | |
seyfrid_L | 0:6f3a386422fa | 417 | |
seyfrid_L | 0:6f3a386422fa | 418 | void pohniSa() |
seyfrid_L | 0:6f3a386422fa | 419 | { |
seyfrid_L | 0:6f3a386422fa | 420 | switch(kere_poschodie){ |
seyfrid_L | 0:6f3a386422fa | 421 | case 0:{ |
seyfrid_L | 0:6f3a386422fa | 422 | if (p_1 == 1 || p_2 == 1 || p_3 == 1 || p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 423 | hore(); |
seyfrid_L | 0:6f3a386422fa | 424 | } |
seyfrid_L | 0:6f3a386422fa | 425 | break; |
seyfrid_L | 0:6f3a386422fa | 426 | } |
seyfrid_L | 0:6f3a386422fa | 427 | case 1:{ |
seyfrid_L | 0:6f3a386422fa | 428 | if(smer == -1){ |
seyfrid_L | 0:6f3a386422fa | 429 | if(p_0 == 1){ |
seyfrid_L | 0:6f3a386422fa | 430 | dole(); |
seyfrid_L | 0:6f3a386422fa | 431 | }else if (p_2 == 1 || p_3 == 1 || p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 432 | hore(); |
seyfrid_L | 0:6f3a386422fa | 433 | } |
seyfrid_L | 0:6f3a386422fa | 434 | }else if(smer == 1){ |
seyfrid_L | 0:6f3a386422fa | 435 | if (p_2 == 1 || p_3 == 1 || p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 436 | hore(); |
seyfrid_L | 0:6f3a386422fa | 437 | }else if(p_0 == 1){ |
seyfrid_L | 0:6f3a386422fa | 438 | dole(); |
seyfrid_L | 0:6f3a386422fa | 439 | } |
seyfrid_L | 0:6f3a386422fa | 440 | } |
seyfrid_L | 0:6f3a386422fa | 441 | break; |
seyfrid_L | 0:6f3a386422fa | 442 | } |
seyfrid_L | 0:6f3a386422fa | 443 | case 2:{ |
seyfrid_L | 0:6f3a386422fa | 444 | if(smer == -1){ |
seyfrid_L | 0:6f3a386422fa | 445 | if(p_0 == 1 || p_1 == 1){ |
seyfrid_L | 0:6f3a386422fa | 446 | dole(); |
seyfrid_L | 0:6f3a386422fa | 447 | }else if(p_3 == 1 || p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 448 | hore(); |
seyfrid_L | 0:6f3a386422fa | 449 | } |
seyfrid_L | 0:6f3a386422fa | 450 | }else if(smer == 1){ |
seyfrid_L | 0:6f3a386422fa | 451 | if(p_3 == 1 || p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 452 | hore(); |
seyfrid_L | 0:6f3a386422fa | 453 | }else if(p_0 == 1 || p_1 == 1){ |
seyfrid_L | 0:6f3a386422fa | 454 | dole(); |
seyfrid_L | 0:6f3a386422fa | 455 | } |
seyfrid_L | 0:6f3a386422fa | 456 | } |
seyfrid_L | 0:6f3a386422fa | 457 | break; |
seyfrid_L | 0:6f3a386422fa | 458 | } |
seyfrid_L | 0:6f3a386422fa | 459 | case 3:{ |
seyfrid_L | 0:6f3a386422fa | 460 | if(smer == -1){ |
seyfrid_L | 0:6f3a386422fa | 461 | if (p_0 == 1 || p_1 == 1 || p_2 == 1){ |
seyfrid_L | 0:6f3a386422fa | 462 | dole(); |
seyfrid_L | 0:6f3a386422fa | 463 | }else if(p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 464 | hore(); |
seyfrid_L | 0:6f3a386422fa | 465 | } |
seyfrid_L | 0:6f3a386422fa | 466 | }else if(smer == 1){ |
seyfrid_L | 0:6f3a386422fa | 467 | if(p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 468 | hore(); |
seyfrid_L | 0:6f3a386422fa | 469 | }else if(p_0 == 1 || p_1 == 1 || p_2 == 1){ |
seyfrid_L | 0:6f3a386422fa | 470 | dole(); |
seyfrid_L | 0:6f3a386422fa | 471 | } |
seyfrid_L | 0:6f3a386422fa | 472 | } |
seyfrid_L | 0:6f3a386422fa | 473 | break; |
seyfrid_L | 0:6f3a386422fa | 474 | } |
seyfrid_L | 0:6f3a386422fa | 475 | case 4:{ |
seyfrid_L | 0:6f3a386422fa | 476 | if(p_0 == 1 || p_1 == 1 || p_2 == 1 || p_3 == 1){ |
seyfrid_L | 0:6f3a386422fa | 477 | dole(); |
seyfrid_L | 0:6f3a386422fa | 478 | } |
seyfrid_L | 0:6f3a386422fa | 479 | break; |
seyfrid_L | 0:6f3a386422fa | 480 | } |
seyfrid_L | 0:6f3a386422fa | 481 | } |
seyfrid_L | 0:6f3a386422fa | 482 | } |
seyfrid_L | 0:6f3a386422fa | 483 | |
seyfrid_L | 0:6f3a386422fa | 484 | |
seyfrid_L | 0:6f3a386422fa | 485 | |
seyfrid_L | 0:6f3a386422fa | 486 | void nudzovaBrzda() |
seyfrid_L | 0:6f3a386422fa | 487 | { |
seyfrid_L | 0:6f3a386422fa | 488 | int aDataIn[] = {0x01}; |
seyfrid_L | 0:6f3a386422fa | 489 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 490 | posliSpravu(EM_BRAKE,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 491 | } |
seyfrid_L | 0:6f3a386422fa | 492 | |
seyfrid_L | 0:6f3a386422fa | 493 | void uvolniNB() |
seyfrid_L | 0:6f3a386422fa | 494 | { |
seyfrid_L | 0:6f3a386422fa | 495 | int aDataIn[] = {0x00}; |
seyfrid_L | 0:6f3a386422fa | 496 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 497 | posliSpravu(EM_BRAKE,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 498 | } |
seyfrid_L | 0:6f3a386422fa | 499 | |
seyfrid_L | 0:6f3a386422fa | 500 | void lcd_display() |
seyfrid_L | 0:6f3a386422fa | 501 | { |
seyfrid_L | 0:6f3a386422fa | 502 | int aDataIn[2]; |
seyfrid_L | 0:6f3a386422fa | 503 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 504 | switch(init_pohyb){ |
seyfrid_L | 0:6f3a386422fa | 505 | case 0:{ |
seyfrid_L | 0:6f3a386422fa | 506 | aDataIn[0] = 0x03; |
seyfrid_L | 0:6f3a386422fa | 507 | break; |
seyfrid_L | 0:6f3a386422fa | 508 | } |
seyfrid_L | 0:6f3a386422fa | 509 | case 1:{ |
seyfrid_L | 0:6f3a386422fa | 510 | aDataIn[0] = 0x01; |
seyfrid_L | 0:6f3a386422fa | 511 | break; |
seyfrid_L | 0:6f3a386422fa | 512 | } |
seyfrid_L | 0:6f3a386422fa | 513 | case -1:{ |
seyfrid_L | 0:6f3a386422fa | 514 | aDataIn[0] = 0x02; |
seyfrid_L | 0:6f3a386422fa | 515 | break; |
seyfrid_L | 0:6f3a386422fa | 516 | } |
seyfrid_L | 0:6f3a386422fa | 517 | } |
seyfrid_L | 0:6f3a386422fa | 518 | switch(cisloPochodia_dislpej){ |
seyfrid_L | 0:6f3a386422fa | 519 | case 0:{ |
seyfrid_L | 0:6f3a386422fa | 520 | aDataIn[1] = 0x50; |
seyfrid_L | 0:6f3a386422fa | 521 | break; |
seyfrid_L | 0:6f3a386422fa | 522 | } |
seyfrid_L | 0:6f3a386422fa | 523 | case 1:{ |
seyfrid_L | 0:6f3a386422fa | 524 | aDataIn[1] = 0x31; |
seyfrid_L | 0:6f3a386422fa | 525 | break; |
seyfrid_L | 0:6f3a386422fa | 526 | } |
seyfrid_L | 0:6f3a386422fa | 527 | case 2:{ |
seyfrid_L | 0:6f3a386422fa | 528 | aDataIn[1] = 0x32; |
seyfrid_L | 0:6f3a386422fa | 529 | break; |
seyfrid_L | 0:6f3a386422fa | 530 | } |
seyfrid_L | 0:6f3a386422fa | 531 | case 3:{ |
seyfrid_L | 0:6f3a386422fa | 532 | aDataIn[1] = 0x33; |
seyfrid_L | 0:6f3a386422fa | 533 | break; |
seyfrid_L | 0:6f3a386422fa | 534 | } |
seyfrid_L | 0:6f3a386422fa | 535 | case 4:{ |
seyfrid_L | 0:6f3a386422fa | 536 | aDataIn[1] = 0x34; |
seyfrid_L | 0:6f3a386422fa | 537 | break; |
seyfrid_L | 0:6f3a386422fa | 538 | } |
seyfrid_L | 0:6f3a386422fa | 539 | } |
seyfrid_L | 0:6f3a386422fa | 540 | if(cisloPochodia_dislpej != disp_poschodie){ |
seyfrid_L | 0:6f3a386422fa | 541 | posliSpravu(C_LCD,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 542 | }else if(init_pohyb != disp_poschodieSmer){ |
seyfrid_L | 0:6f3a386422fa | 543 | posliSpravu(C_LCD,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 544 | } |
seyfrid_L | 0:6f3a386422fa | 545 | disp_poschodie = cisloPochodia_dislpej; |
seyfrid_L | 0:6f3a386422fa | 546 | disp_poschodieSmer = init_pohyb; |
seyfrid_L | 0:6f3a386422fa | 547 | } |
seyfrid_L | 0:6f3a386422fa | 548 | |
seyfrid_L | 0:6f3a386422fa | 549 | void riadeniePohybu() |
seyfrid_L | 0:6f3a386422fa | 550 | { |
seyfrid_L | 0:6f3a386422fa | 551 | if (dajPoziciu() != pozicia){ |
seyfrid_L | 0:6f3a386422fa | 552 | if(inicializacia == 1){ |
seyfrid_L | 0:6f3a386422fa | 553 | if(dajPoziciu() == SWITCH_P){ |
seyfrid_L | 0:6f3a386422fa | 554 | inicializacia = 0; |
seyfrid_L | 0:6f3a386422fa | 555 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 556 | } |
seyfrid_L | 0:6f3a386422fa | 557 | }else{ |
seyfrid_L | 0:6f3a386422fa | 558 | if(smer == 1){ |
seyfrid_L | 0:6f3a386422fa | 559 | if(p_0 == 1){ |
seyfrid_L | 0:6f3a386422fa | 560 | if(dajPoziciu() == SWITCH_P){ |
seyfrid_L | 0:6f3a386422fa | 561 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 562 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 563 | |
seyfrid_L | 0:6f3a386422fa | 564 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 565 | } |
seyfrid_L | 0:6f3a386422fa | 566 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 567 | |
seyfrid_L | 0:6f3a386422fa | 568 | stena--; |
seyfrid_L | 0:6f3a386422fa | 569 | } |
seyfrid_L | 0:6f3a386422fa | 570 | p_0 = 0; |
seyfrid_L | 0:6f3a386422fa | 571 | kere_poschodie = 0; |
seyfrid_L | 0:6f3a386422fa | 572 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 573 | } |
seyfrid_L | 0:6f3a386422fa | 574 | }else if(p_1 == 1){ |
seyfrid_L | 0:6f3a386422fa | 575 | if(dajPoziciu() == SWITCH_1){ |
seyfrid_L | 0:6f3a386422fa | 576 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 577 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 578 | |
seyfrid_L | 0:6f3a386422fa | 579 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 580 | } |
seyfrid_L | 0:6f3a386422fa | 581 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 582 | |
seyfrid_L | 0:6f3a386422fa | 583 | stena--; |
seyfrid_L | 0:6f3a386422fa | 584 | } |
seyfrid_L | 0:6f3a386422fa | 585 | p_1 = 0; |
seyfrid_L | 0:6f3a386422fa | 586 | kere_poschodie = 1; |
seyfrid_L | 0:6f3a386422fa | 587 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 588 | } |
seyfrid_L | 0:6f3a386422fa | 589 | }else if(p_2 == 1){ |
seyfrid_L | 0:6f3a386422fa | 590 | if(dajPoziciu() == SWITCH_2){ |
seyfrid_L | 0:6f3a386422fa | 591 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 592 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 593 | |
seyfrid_L | 0:6f3a386422fa | 594 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 595 | } |
seyfrid_L | 0:6f3a386422fa | 596 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 597 | |
seyfrid_L | 0:6f3a386422fa | 598 | stena--; |
seyfrid_L | 0:6f3a386422fa | 599 | } |
seyfrid_L | 0:6f3a386422fa | 600 | p_2 = 0; |
seyfrid_L | 0:6f3a386422fa | 601 | kere_poschodie = 2; |
seyfrid_L | 0:6f3a386422fa | 602 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 603 | } |
seyfrid_L | 0:6f3a386422fa | 604 | }else if(p_3 == 1){ |
seyfrid_L | 0:6f3a386422fa | 605 | if(dajPoziciu() == SWITCH_3){ |
seyfrid_L | 0:6f3a386422fa | 606 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 607 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 608 | |
seyfrid_L | 0:6f3a386422fa | 609 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 610 | } |
seyfrid_L | 0:6f3a386422fa | 611 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 612 | |
seyfrid_L | 0:6f3a386422fa | 613 | stena--; |
seyfrid_L | 0:6f3a386422fa | 614 | } |
seyfrid_L | 0:6f3a386422fa | 615 | p_3 = 0; |
seyfrid_L | 0:6f3a386422fa | 616 | kere_poschodie = 3; |
seyfrid_L | 0:6f3a386422fa | 617 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 618 | } |
seyfrid_L | 0:6f3a386422fa | 619 | }else if(p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 620 | if(dajPoziciu() == SWITCH_4){ |
seyfrid_L | 0:6f3a386422fa | 621 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 622 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 623 | |
seyfrid_L | 0:6f3a386422fa | 624 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 625 | } |
seyfrid_L | 0:6f3a386422fa | 626 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 627 | |
seyfrid_L | 0:6f3a386422fa | 628 | stena--; |
seyfrid_L | 0:6f3a386422fa | 629 | } |
seyfrid_L | 0:6f3a386422fa | 630 | p_4 = 0; |
seyfrid_L | 0:6f3a386422fa | 631 | kere_poschodie = 4; |
seyfrid_L | 0:6f3a386422fa | 632 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 633 | } |
seyfrid_L | 0:6f3a386422fa | 634 | } |
seyfrid_L | 0:6f3a386422fa | 635 | }else if(smer == -1){ |
seyfrid_L | 0:6f3a386422fa | 636 | if(p_4 == 1){ |
seyfrid_L | 0:6f3a386422fa | 637 | if(dajPoziciu() == SWITCH_4){ |
seyfrid_L | 0:6f3a386422fa | 638 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 639 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 640 | |
seyfrid_L | 0:6f3a386422fa | 641 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 642 | } |
seyfrid_L | 0:6f3a386422fa | 643 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 644 | |
seyfrid_L | 0:6f3a386422fa | 645 | stena--; |
seyfrid_L | 0:6f3a386422fa | 646 | } |
seyfrid_L | 0:6f3a386422fa | 647 | p_4 = 0; |
seyfrid_L | 0:6f3a386422fa | 648 | kere_poschodie = 4; |
seyfrid_L | 0:6f3a386422fa | 649 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 650 | } |
seyfrid_L | 0:6f3a386422fa | 651 | }else if(p_3 == 1){ |
seyfrid_L | 0:6f3a386422fa | 652 | if(dajPoziciu() == SWITCH_3){ |
seyfrid_L | 0:6f3a386422fa | 653 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 654 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 655 | |
seyfrid_L | 0:6f3a386422fa | 656 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 657 | } |
seyfrid_L | 0:6f3a386422fa | 658 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 659 | |
seyfrid_L | 0:6f3a386422fa | 660 | stena--; |
seyfrid_L | 0:6f3a386422fa | 661 | } |
seyfrid_L | 0:6f3a386422fa | 662 | p_3 = 0; |
seyfrid_L | 0:6f3a386422fa | 663 | kere_poschodie = 3; |
seyfrid_L | 0:6f3a386422fa | 664 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 665 | } |
seyfrid_L | 0:6f3a386422fa | 666 | }else if(p_2 == 1){ |
seyfrid_L | 0:6f3a386422fa | 667 | if(dajPoziciu() == SWITCH_2){ |
seyfrid_L | 0:6f3a386422fa | 668 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 669 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 670 | |
seyfrid_L | 0:6f3a386422fa | 671 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 672 | } |
seyfrid_L | 0:6f3a386422fa | 673 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 674 | |
seyfrid_L | 0:6f3a386422fa | 675 | stena--; |
seyfrid_L | 0:6f3a386422fa | 676 | } |
seyfrid_L | 0:6f3a386422fa | 677 | p_2 = 0; |
seyfrid_L | 0:6f3a386422fa | 678 | kere_poschodie = 2; |
seyfrid_L | 0:6f3a386422fa | 679 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 680 | } |
seyfrid_L | 0:6f3a386422fa | 681 | }else if(p_1 == 1){ |
seyfrid_L | 0:6f3a386422fa | 682 | if(dajPoziciu() == SWITCH_1){ |
seyfrid_L | 0:6f3a386422fa | 683 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 684 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 685 | |
seyfrid_L | 0:6f3a386422fa | 686 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 687 | } |
seyfrid_L | 0:6f3a386422fa | 688 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 689 | |
seyfrid_L | 0:6f3a386422fa | 690 | stena--; |
seyfrid_L | 0:6f3a386422fa | 691 | } |
seyfrid_L | 0:6f3a386422fa | 692 | p_1 = 0; |
seyfrid_L | 0:6f3a386422fa | 693 | kere_poschodie = 1; |
seyfrid_L | 0:6f3a386422fa | 694 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 695 | } |
seyfrid_L | 0:6f3a386422fa | 696 | }else if(p_0 == 1){ |
seyfrid_L | 0:6f3a386422fa | 697 | if(dajPoziciu() == SWITCH_P){ |
seyfrid_L | 0:6f3a386422fa | 698 | zastav(); |
seyfrid_L | 0:6f3a386422fa | 699 | if(init_kabina > 0){ |
seyfrid_L | 0:6f3a386422fa | 700 | |
seyfrid_L | 0:6f3a386422fa | 701 | init_kabina--; |
seyfrid_L | 0:6f3a386422fa | 702 | } |
seyfrid_L | 0:6f3a386422fa | 703 | if(stena > 0){ |
seyfrid_L | 0:6f3a386422fa | 704 | |
seyfrid_L | 0:6f3a386422fa | 705 | stena--; |
seyfrid_L | 0:6f3a386422fa | 706 | } |
seyfrid_L | 0:6f3a386422fa | 707 | p_0 = 0; |
seyfrid_L | 0:6f3a386422fa | 708 | kere_poschodie = 0; |
seyfrid_L | 0:6f3a386422fa | 709 | cakajNaPoschodi.attach(&dockajNaPoschodi, 0.5); |
seyfrid_L | 0:6f3a386422fa | 710 | } |
seyfrid_L | 0:6f3a386422fa | 711 | } |
seyfrid_L | 0:6f3a386422fa | 712 | } |
seyfrid_L | 0:6f3a386422fa | 713 | } |
seyfrid_L | 0:6f3a386422fa | 714 | } |
seyfrid_L | 0:6f3a386422fa | 715 | pozicia = dajPoziciu(); |
seyfrid_L | 0:6f3a386422fa | 716 | } |
seyfrid_L | 0:6f3a386422fa | 717 | |
seyfrid_L | 0:6f3a386422fa | 718 | void watchdog() |
seyfrid_L | 0:6f3a386422fa | 719 | { |
seyfrid_L | 0:6f3a386422fa | 720 | int aDataIn[] = {0x00}; |
seyfrid_L | 0:6f3a386422fa | 721 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 722 | posliSpravu(WATCHDOG,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 723 | } |
seyfrid_L | 0:6f3a386422fa | 724 | |
seyfrid_L | 0:6f3a386422fa | 725 | void resetuj_watchdog() |
seyfrid_L | 0:6f3a386422fa | 726 | { |
seyfrid_L | 0:6f3a386422fa | 727 | int aDataIn[] = {0x01}; |
seyfrid_L | 0:6f3a386422fa | 728 | int dataSize = ARRAY_SIZE(aDataIn); |
seyfrid_L | 0:6f3a386422fa | 729 | posliSpravu(WATCHDOG,0x00,dataSize, aDataIn); |
seyfrid_L | 0:6f3a386422fa | 730 | } |
seyfrid_L | 0:6f3a386422fa | 731 |