Benedikt Kicin, vytah semestralka

Dependencies:   mbed

Committer:
kicin2
Date:
Wed Jan 24 08:31:19 2018 +0000
Revision:
1:5e6b55099364
Parent:
0:2574b54351ed
kicin2 vytah

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kicin2 0:2574b54351ed 1 /*!
kicin2 0:2574b54351ed 2 * \file main.cpp
kicin2 0:2574b54351ed 3 * \author Benedikt Kicin
kicin2 1:5e6b55099364 4 * subor main.cpp je hlavny subor aplikacie, inicializacia, reset, spustenie*/
kicin2 0:2574b54351ed 5
kicin2 0:2574b54351ed 6 #include "mbed.h"
kicin2 0:2574b54351ed 7 #include "komunikacia.h"
kicin2 0:2574b54351ed 8 #include "vytah.h"
kicin2 0:2574b54351ed 9 #include "riadenie.h"
kicin2 0:2574b54351ed 10 #include "nastavenia.h"
kicin2 0:2574b54351ed 11 #include "MMA8451Q.h"
kicin2 0:2574b54351ed 12
kicin2 0:2574b54351ed 13
kicin2 0:2574b54351ed 14 /**
kicin2 0:2574b54351ed 15 *Hlavna funkcia riadenia celeho vytahu/programu
kicin2 0:2574b54351ed 16 */
kicin2 0:2574b54351ed 17 int main(void)
kicin2 0:2574b54351ed 18 {
kicin2 0:2574b54351ed 19 Ticker t; //na prerusenie aby mohol watchdog posielat spravy
kicin2 0:2574b54351ed 20
kicin2 0:2574b54351ed 21 initCommunication();//nastavenie rychlosti komunikacie
kicin2 0:2574b54351ed 22 pc.attach(&prijmiPaket,Serial::RxIrq); //prijimanie paketu cez prerusenie
kicin2 0:2574b54351ed 23 resetujSpravuWD();//obnovi watchdog pri opatovnom spusteni
kicin2 0:2574b54351ed 24 vypniBrzdu();//vypne ochrannu/nudzovu brzdu
kicin2 0:2574b54351ed 25 NVIC_SetPriority(LPTimer_IRQn, 255);//nastavenie priority, nastav tickeru najnizsiu prioritu aby vedel dostat ACK na prerusenie
kicin2 0:2574b54351ed 26 t.attach(&posliSpravuWD, 1.4);//kazdu 1,5s odosle spravu watchdogu (+testovane na 1,4s)
kicin2 0:2574b54351ed 27 //NVIC_SetPriority(PORTC_PORTD_IRQn, 255);//nastavenie priority
kicin2 0:2574b54351ed 28 acc.MotionDetection(&zapniBrzdu);//prerusenie ma detekciu pohybu
kicin2 0:2574b54351ed 29
kicin2 0:2574b54351ed 30 pociatocneNastavenieDispleja();//nastavi displej na stvrte/vychodzie poschodie
kicin2 0:2574b54351ed 31
kicin2 0:2574b54351ed 32 while(1){
kicin2 0:2574b54351ed 33
kicin2 0:2574b54351ed 34 rozsvietenieLED();//ak je stlacene tlacidlo rozsvieti sa ledka
kicin2 0:2574b54351ed 35 zmenDisplej();//zmeni hodnot na displeji
kicin2 0:2574b54351ed 36
kicin2 0:2574b54351ed 37 if(spravnePoschodie == true){ //ked je na spravnom poschodi caka na dalsie pokyny(pociatocny stav)
kicin2 0:2574b54351ed 38
kicin2 0:2574b54351ed 39 if(ostan == true){//ked je na spravnom poschodi vykona potrebne operacie, zastan
kicin2 0:2574b54351ed 40 stop();//zastavenie vytahu
kicin2 0:2574b54351ed 41 unsigned char vypniLedku = 16 + poschodie;
kicin2 0:2574b54351ed 42 unsigned char vypniLedku2 = 32 + poschodie;
kicin2 0:2574b54351ed 43 posliBajt(vypniLedku, 0x00);//poslanie bajtu na vypnutie ledky
kicin2 0:2574b54351ed 44 posliBajt(vypniLedku2, 0x00);//poslanie bajtu na vypnutie ledky2
kicin2 0:2574b54351ed 45 zmenDisplejNa(0x00, 48 + poschodie);//zmeni displej na prislusne poschodie
kicin2 0:2574b54351ed 46
kicin2 0:2574b54351ed 47 Timer t;
kicin2 0:2574b54351ed 48 t.start();
kicin2 0:2574b54351ed 49 while (t.read() <= 3) {}//caka 3 sekundy aby dobehol motor
kicin2 0:2574b54351ed 50 t.stop();
kicin2 0:2574b54351ed 51 odomkni();//odomknutie vytahu po 3 sek cakania - nemoze sa hybat
kicin2 0:2574b54351ed 52
kicin2 0:2574b54351ed 53 aktPoschodie = poschodie;
kicin2 0:2574b54351ed 54 ostan = false;
kicin2 0:2574b54351ed 55 poschodie = 0xFF;//aktualizacia poschodia na ktorom som
kicin2 0:2574b54351ed 56
kicin2 0:2574b54351ed 57 }
kicin2 0:2574b54351ed 58 if((poschodie != 0xFF) && (poschodie != aktPoschodie)){ //ak nie som na rovnakom poschodi ako sa vytah prave nachadza
kicin2 0:2574b54351ed 59 chodNaPoschodie(poschodie);//pojde na prislusne poschodie
kicin2 0:2574b54351ed 60 zmenDisplejNa(smer, 48 + aktPoschodie);//nastavi displej
kicin2 0:2574b54351ed 61 spravnePoschodie = false;//vyskoci z hlavnej podmienky kym nedojde na spravne poschodie
kicin2 0:2574b54351ed 62 }
kicin2 0:2574b54351ed 63
kicin2 0:2574b54351ed 64 }
kicin2 0:2574b54351ed 65 }
kicin2 0:2574b54351ed 66 }