Projeto_Mecatronico_Team / Mbed 2 deprecated Projeto_Mecatronico

Dependencies:   mbed filesystem TextLCD

Fork of Projeto_Mecatronico by Fernando Sakabe

main.cpp

Committer:
ricardoparanhos
Date:
2022-06-19
Revision:
36:6e46a3e4df6c
Parent:
35:c91cd38f7197

File content as of revision 36:6e46a3e4df6c:

#include "JOG.h"
#include "home.h"
#include "LCD.h"
#include "tempo_de_ciclo.h"
#include <iostream>
#include "posicao.h"
#include "SD.h"
#include "perifericos.h"
bool emerg = 0;
char mensagem_emergencia[80];
bool flag=0;
bool flag_main=0;
bool flag_lcd=0;
bool flag_perifericos = 0;
int apitou = 0;
InterruptIn velocidade(PB_11);
DigitalIn vel_inicial(PB_11);
InterruptIn emergencia (PC_13);

void abaixar_velocidade()
{
    tempo=0.0026;
    tempo_z = 0.0026;
//    printf("vel abaixar \n");

}

void aumentar_velocidade()
{
    tempo=0.0021;
    tempo_z = 0.0021;
//    printf("vel aumentar \n");

}

void estado_emergencia_funcao () //O botão de emergência, ao ser apertado, reseta o programa.
{
    NVIC_SystemReset(); 
}



int main()

{
    velocidade.rise(&abaixar_velocidade);
    velocidade.fall(&aumentar_velocidade);
    emergencia.rise(&estado_emergencia_funcao);
    if(vel_inicial==1) { //identifica em qual velocidade a chave seletora está
        tempo=0.0026;
        tempo_z = 0.0026;
//        printf("vel inicial devagar \n");
    } else {
        tempo=0.0021;
        tempo_z = 0.0021;
//        printf("vel inicial rapido \n");
    }

    while(1) {


        while (emergencia == 1) { //rotina de emergência
            laser = 0;
            if(flag_lcd==0) {
                wait(1);
                mostrar_no_lcd("ESTADO DE EMERGENCIA\nDestrave o botao    para reiniciar");
                flag_lcd=1;
            }
            if (apitou == 0) {
                acionar_perifericos (2, 2);
                apitou = 1;
            }
            acionar_perifericos(2, 3);
        }

        if(flag==0) {
            mostrar_no_lcd("Bem-Vindo!\nAperte Sim para     comecar");
            acionar_perifericos (0, 0);
            flag=1;
        }
        if(arrow_right_button==0) {
            wait(0.5);
            while(flag_main==0) {
                if(flag==1) {
                    mostrar_no_lcd("Ir para home?");
                    acionar_perifericos (0, 0);
                    flag=0;

                }
                wait(0.5);
                if(arrow_right_button==0) {
                    mostrar_no_lcd("Indo para home...");
                    home();
                    wait(0.5);
                    flag_main=1;
                }
            }
            wait(0.5);
            while(flag_main==1) {
                if(flag==0) {
                    acionar_perifericos (0, 0);
                    mostrar_no_lcd("Utilizar posicoes   salvas no SD?");
                    flag=1;
                }
                if(enter_button==0) {
                    setar_posicoes();
                    flag_main=0;
                    mostrar_no_lcd("Indo para home...");

                } else if(arrow_right_button==0) {

                    acionar_perifericos (0, 0);
                    mostrar_no_lcd("Lendo SD...");


                    ler_SD();
                    flag_main=0;
                }

            }
            wait(0.5);
            while(flag_main==0) {

                if(flag==1) {
                    acionar_perifericos (0, 0);
                    mostrar_tempo_jog_preview();
                    flag=0;
                }
                wait(1);
                if(arrow_right_button==0) {
                    acionar_perifericos (1, 0);
                    mostrar_no_lcd("Executando JOG      PREVIEW...");
                    jog_preview_completo ();
                    flag_main=1;
                } else if(enter_button==0) {
                    flag_main=1;
                }
            }
            wait(0.5);
            while(flag_main==1) {
                if(flag==0) {
                    acionar_perifericos (0, 0);
                    mostrar_tempo_jog();
                    flag=1;
                }

                if(arrow_right_button==0) {
                    acionar_perifericos (1, 0);
                    mostrar_no_lcd("Executando JOG...");

                    jog_completo();
                    mostrar_no_lcd("JOG finalizado.     Para voltar ao      inicio aperte sim.");
                    flag_main=0;
                } else if(enter_button==0) {
                    flag_main=0;
                    mostrar_no_lcd("Processo finalizado!\nAperte Sim para     recomecar.");
                }
            }
        }
    }
}