Update

Dependencies:   mbed mbed-rtos X_NUCLEO_IHM02A1

ST_DUO.cpp

Committer:
scherfa2
Date:
2019-05-13
Revision:
38:3776ee18e56f
Parent:
35:758191d5c6e1
Child:
40:117b324843ee

File content as of revision 38:3776ee18e56f:

#include "SETUP.h"


int StatusDUO=DUO_DEFAULT;

bool ButtonSTART = false;
bool ButtonABBRUCH = false;


/*
extern volatile bool buttonSTART_pressed;
extern volatile bool buttonSTART_enabled;

extern volatile bool buttonAbbruch_pressed;
extern volatile bool buttonAbbruch_enabled;
*/



extern PwmOut Servo;

extern L6470 **motors;
extern L6470B **motors2;

extern DigitalIn LS_1;
extern DigitalIn LS_2;
extern DigitalIn LS_3;

extern PwmOut Cutter_1;
extern PwmOut Cutter_2;
extern PwmOut Spleisser_1;
extern PwmOut Spleisser_2;

void EntryDuoDefault()
{
      StatusDUO=DUO_DEFAULT;  
}

void EntryDuoStart()
{   
    Stepper_1_Leerlauf();
    Stepper_2_Leerlauf();
    Stepper_3_Leerlauf();
    
    DisplaySendeBefehl(0x0C);
    DisplaySendeBefehl(0x01);
    gotoxy(1,1);
    DisplaySendeString("Modus: DUO-Betrieb");
    gotoxy(1,4);
    DisplaySendeString("Start            PLA");

    StatusDUO=DUO_START;
     
}

void EntryDuoFilamentIN()
{   
     DisplaySendeBefehl(0x01);
     gotoxy(1,1);
     DisplaySendeString("Betrieb gestartet   ");
     gotoxy(1,3);
     DisplaySendeString("Filament einlegen   ");
     gotoxy(1,4);
     DisplaySendeString("             Abbruch");
     
   //  Set_Cutter(200, 200, 2);
     
     motors[0]->run(StepperMotor::FWD, 100);
     StatusDUO=DUO_FilamentIN;
}

void EntryDuoSchneiden1()
{
    Stepper_1_SetHome();
    
    DisplaySendeBefehl(0x01);
    gotoxy(1,1);
    DisplaySendeString("Filament an Eingang");
    gotoxy(1,3);
    DisplaySendeString("Wird gefoerdert...");
    gotoxy(1,4);
    DisplaySendeString("Spleissen    Abbruch");
     
    StatusDUO=DUO_Schneiden1;
    
}
void EntryDuoSchneiden2()
{
    Stepper_1_SetHome();
    
    DisplaySendeBefehl(0x01);
    gotoxy(1,1);
    DisplaySendeString("Spleissen");
    gotoxy(1,3);
    DisplaySendeString("");
    gotoxy(1,4);
    DisplaySendeString("             Abbruch");
    
    
    
    Set_Spleisser(200, 200, 2);
    Stepper_2_Move('V', 400);
    printf("Spleissen\r\n");
    
     
    StatusDUO=DUO_Schneiden2;
    
}


void EntryDUO()
{
    ButtonSTART = get_Button_1();
    ButtonABBRUCH = get_Button_2();
    
    switch(StatusDUO)
    {     
       case DUO_DEFAULT:
       //buttonAbbruch_diable_cb();
       //buttonSTART_enabled_cb();
       EntryDuoStart();      
       break;
       
       case DUO_START:
       if(ButtonSTART==true)
        {
            
            ButtonSTART=false;  
           // buttonSTART_diable_cb();
            //buttonAbbruch_enabled_cb();
            EntryDuoFilamentIN();     
        }
       
       break;
       
       case DUO_FilamentIN:
       if(LS_1 == 0)
        {
            EntryDuoSchneiden1();     
        }
        
       if(ButtonABBRUCH == true)
        {    
            ButtonABBRUCH = false;
            //buttonAbbruch_pressed=false;  
            //buttonAbbruch_diable_cb();
            EntryDuoDefault();
        }
        
       break;
       
       case DUO_Schneiden1:
        if(ButtonABBRUCH == true)
        {   
            ButtonABBRUCH = false; 
            //buttonAbbruch_pressed=false;  
            //buttonAbbruch_diable_cb();
            EntryDuoDefault();
        }
        if(ButtonSTART == true)
        {
            ButtonSTART = false;
            EntryDuoSchneiden2();
            
        }
       
       break;
       
       case DUO_Schneiden2:
       if(ButtonABBRUCH == true)
       {
            ButtonABBRUCH = false;
            EntryDuoDefault();
        }
       break;
       
       case DUO_Spleissen:
       break;
       
       case DUO_Normalbetrieb:
       break;
       
       case DUO_Finish:
       break;
       
       case DUO_FERTIG:
       break;
       
       case DUO_STOERUNG:
       break;
             
    }   
}