Lukas Seyfrid
/
SeyfridLukas
semestralna praca
Diff: main.cpp
- Revision:
- 7:f906eb062d36
- Parent:
- 6:8c336acc90f9
- Child:
- 8:3edf2e10899d
diff -r 8c336acc90f9 -r f906eb062d36 main.cpp --- a/main.cpp Tue Jan 09 13:22:45 2018 +0000 +++ b/main.cpp Tue Jan 09 14:30:54 2018 +0000 @@ -6,6 +6,25 @@ Serial term(USBTX, USBRX); DigitalOut led1(LED2); +int main() { + + term.baud(57600); + term.attach(&prijmiSpravu, Serial::RxIrq); + + disp.attach(&disp_Vyt, 0.5); + sleduj_cas.attach(&watchdog, 1.4); + acc.MotionDetection(&EM); + init(); + + //int aDataIn[] = {*prerusVysielanie()}; + // int dataSize1 = ARRAY_SIZE(aDataIn); + // posliSpravu(0xD0,0xAA,dataSize1,aDataIn); + + + while(1){ + tlacitka(); + } +} @@ -84,7 +103,7 @@ } } - nice(); + logikaRiadenia(); } @@ -96,6 +115,14 @@ } + void EM() + { + + int aDataIn[] = {0x01}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(EM_BRAKE,0xAA,dataSize1,aDataIn); + } + void resWatch() { int aDataIn[] = {0x01}; @@ -104,7 +131,7 @@ } -void nice(){ +void logikaRiadenia(){ if(init_flag == 1){ if (dajPoschodie() == SWITCH_P){ @@ -121,6 +148,7 @@ ledPoffC(); stop(); odomkniVytah() ; + poschodie = 0; p_0 = 0; } @@ -134,6 +162,7 @@ led1offC(); stop(); odomkniVytah() ; + poschodie = 1; p_1 = 0; } @@ -146,6 +175,7 @@ led2offC(); stop(); odomkniVytah() ; + poschodie = 2; p_2 = 0; } @@ -158,6 +188,7 @@ led3offC(); stop(); odomkniVytah() ; + poschodie = 3; p_3 = 0; } } @@ -169,6 +200,7 @@ led4off(); stop(); odomkniVytah() ; + poschodie = 4; p_4 = 0; } @@ -178,6 +210,8 @@ } + + void tlacitka() { @@ -186,34 +220,78 @@ case W_P_BUTTON: { p_0 = 1; - smerDole(); ledPon(); + if (poschodie > 0) + { + smerDole(); + } else if (poschodie < 0) + { + smerHore(); + } + else + { + p_0 = 0; + ledPoff(); + } + break; } case W_1_BUTTON: { p_1 = 1; - smerHore(); led1on(); + if (poschodie > 1) + { + smerDole(); + } else if (poschodie < 1) + { + smerHore(); + } else + { + p_1 = 0; + led1off(); + } + break; } case W_2_BUTTON: { p_2 = 1; - smerDole(); led2on(); + if (poschodie > 2) + { + smerDole(); + } else if (poschodie < 2) + { + smerHore(); + } + else + { + p_2 = 0; + led2off(); + } break; } case W_3_BUTTON: { p_3 = 1; - - smerDole(); led3on(); + if (poschodie > 3) + { + smerDole(); + } else if (poschodie < 3) + { + smerHore(); + } + else + { + p_3 = 0; + led3off(); + } break; } @@ -221,48 +299,114 @@ case W_4_BUTTON: { p_4 = 1; - smerHore(); led4on(); + if (poschodie > 4) + { + smerDole(); + } else if (poschodie < 4) + { + smerHore(); + } + else + { + p_4 = 0; + led4off(); + } break; } case C_P_BUTTON: { p_0 = 1; - smerHore(); ledPonC(); + if (poschodie > 0) + { + smerDole(); + } else if (poschodie < 0) + { + smerHore(); + } + else + { + p_0 = 0; + ledPoffC(); + } break; } case C_1_BUTTON: { p_1 = 1; - smerHore(); led1onC(); + if (poschodie > 1) + { + smerDole(); + } else if (poschodie < 1) + { + smerHore(); + } + else + { + p_1 = 0; + led1off(); + } break; } case C_2_BUTTON: { p_2 = 1; - smerHore(); led2onC(); + if (poschodie > 2) + { + smerDole(); + } else if (poschodie < 2) + { + smerHore(); + } + else + { + p_2 = 0; + led2offC(); + } break; } case C_3_BUTTON: { p_3 = 1; - smerHore(); led3onC(); + if (poschodie > 3) + { + smerDole(); + } else if (poschodie < 3) + { + smerHore(); + } + else + { + p_3 = 0; + led3offC(); + } break; } case C_4_BUTTON: { p_4 = 1; - smerHore(); led4onC(); + if (poschodie > 4) + { + smerDole(); + } else if (poschodie < 4) + { + smerHore(); + } + else + { + p_4 = 0; + led4offC(); + } break; } @@ -273,7 +417,12 @@ } - +void watchdog() +{ + int aDataIn[] = {0x03}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(WATCHDOG,0xAA,dataSize1,aDataIn); + } int dajPoschodie() @@ -325,22 +474,7 @@ -int main() { - - term.baud(57600); - term.attach(&prijmiSpravu, Serial::RxIrq); - - //int aDataIn[] = {*prerusVysielanie()}; - // int dataSize1 = ARRAY_SIZE(aDataIn); - // posliSpravu(0xD0,0xAA,dataSize1,aDataIn); - - - while(1){ - //prijmi = 0; - tlacitka(); - } -} void init(){ init_flag = 1;