Update
Dependencies: mbed mbed-rtos X_NUCLEO_IHM02A1
ST_SOLO.cpp
- Committer:
- hagenrap
- Date:
- 2019-05-10
- Revision:
- 37:a74d377d8f74
- Parent:
- 36:ba2e7eddbafa
- Child:
- 38:3776ee18e56f
File content as of revision 37:a74d377d8f74:
#include "SETUP.h" /*** BEISPIEL FÜR RAPHI if(evTasterStart == 1) { entryEinlegenIn(); StatusSOLO=SOLO_EinlegenIN; }*/ /* if (count < 2) { Set_Servo_Bad_Fil(); count = count + 1; } else { } */ /* Set_Servo_Bad_Fil(); Thread::wait(1000); Set_Servo_Good_Fil(); */ /* if (buttonSTART_pressed == true) { printf("BUTTON_START\n\r"); Thread::wait(1000); buttonSTART_pressed = false; } if (buttonAbbruch_pressed == true) { printf("BUTTON_ABBRUCH\n\r"); Thread::wait(1000); buttonAbbruch_pressed = false; } */ /* printf("SOLO\n\r"); printf(" LS1 %d\n\r", LS_1.read()); printf(" LS2 %d\n\r", LS_2.read()); printf(" LS3 %d\n\r", LS_3.read()); */ /* printf("SOLO\n\r"); motors[0]->run(StepperMotor::FWD, 500); Thread::wait(1000); */ /* motors[0]->run(StepperMotor::FWD, 500); */ /* if(mybutton.read() == 0) { printf("Blitz\n\r"); Set_Cutter(500, 2000, ); } */ int StatusSOLO=SOLO_DEFAULT; extern PwmOut Servo; extern volatile bool buttonSTART_pressed; extern volatile bool buttonSTART_enabled; extern volatile bool buttonAbbruch_pressed; extern volatile bool buttonAbbruch_enabled; extern DigitalIn LS_1; extern DigitalIn LS_2; extern DigitalIn LS_3; extern L6470 **motors; extern L6470B **motors2; extern XNucleoIHM02A1 *x_nucleo_ihm02a1_1; extern XNucleoIHM02A12 *x_nucleo_ihm02a1_2; extern DigitalIn mybutton; extern PwmOut Cutter_1; extern PwmOut Cutter_2; extern PwmOut Spleisser_1; extern PwmOut Spleisser_2; int material = 0; float zeit = 0; int val_LS1 = 0; int val_LS2 = 0; int val_LS3 = 0; int count = 0; Timer machNichts; void enable_Buttons() { buttonSTART_enabled_cb(); buttonAbbruch_enabled_cb(); } void entry_SOLO_DEFAULT() { StatusSOLO = SOLO_DEFAULT; DisplaySendeBefehl(0x01); machNichts.stop(); machNichts.reset(); zeit = 0; val_LS1 = LS_1.read(); if(val_LS1 == 0) { while(val_LS1 == 0) { Stepper_1_Run('R', 500); gotoxy(1, 1); DisplaySendeString("ABBRUCH:"); gotoxy(1, 2); DisplaySendeString("Filament rechts"); gotoxy(1, 4); DisplaySendeString("entfernen"); val_LS1 = LS_1.read(); } } val_LS3 = LS_3.read(); if(val_LS3 == 0) { while(val_LS3 == 0) { Stepper_2_Run('V', 500); gotoxy(1, 1); DisplaySendeString("ABBRUCH:"); gotoxy(1, 2); DisplaySendeString("Filament links"); gotoxy(1, 4); DisplaySendeString("entfernen"); val_LS3 = LS_3.read(); } } DisplaySendeBefehl(0x01); } void entry_SOLO_EinlegenIN() { StatusSOLO = SOLO_EinlegenIN; DisplaySendeBefehl(0x01); machNichts.start(); Set_Servo_Good_Fil(); } void entry_SOLO_INtoSPLEISSER() { StatusSOLO = SOLO_INtoSPLEISSER; DisplaySendeBefehl(0x01); machNichts.stop(); machNichts.reset(); zeit = 0; machNichts.start(); enable_Buttons(); } void entry_SOLO_EinlegenOUT() { StatusSOLO = SOLO_EinlegenOUT; DisplaySendeBefehl(0x01); machNichts.stop(); machNichts.reset(); zeit = 0; machNichts.start(); enable_Buttons(); } void entry_SOLO_OUTtoSPLEISSER() { StatusSOLO = SOLO_OUTtoSPLEISSER; DisplaySendeBefehl(0x01); machNichts.stop(); machNichts.reset(); zeit = 0; machNichts.start(); enable_Buttons(); } void entry_SOLO_Spleissen() { DisplaySendeBefehl(0x01); StatusSOLO = SOLO_Spleissen; } void EntrySOLO() { switch(StatusSOLO) { case SOLO_DEFAULT: enable_Buttons(); Stepper_1_Leerlauf(); Stepper_2_Leerlauf(); DisplaySendeBefehl(0x0C); gotoxy(1, 1); DisplaySendeString("Modus: SOLO-Betrieb"); if(material == 1) { gotoxy(1, 4); DisplaySendeString("Start ABS"); } else if(material == 0) { gotoxy(1, 4); DisplaySendeString("Start PLA"); } if(buttonAbbruch_pressed == true) { buttonAbbruch_pressed = false; buttonAbbruch_diable_cb(); material = !material; } if(buttonSTART_pressed == true) { buttonSTART_pressed = false; buttonSTART_diable_cb(); //entry_SOLO_EinlegenOUT(); entry_SOLO_EinlegenIN(); } break; case SOLO_EinlegenIN: //Servo_Off(); DisplaySendeBefehl(0x0C); gotoxy(1, 1); DisplaySendeString("Filament rechts"); gotoxy(1, 3); DisplaySendeString("einlegen"); gotoxy(1, 4); DisplaySendeString(" Abbruch"); if(buttonAbbruch_pressed == true) { buttonAbbruch_pressed = false; buttonAbbruch_diable_cb(); entry_SOLO_DEFAULT(); } zeit = machNichts.read(); if(zeit >= WARTEZEIT) { entry_SOLO_DEFAULT(); } val_LS2 = LS_2.read(); if(val_LS2 == 1) { Stepper_1_Run('V', 100); } else if (val_LS2 == 0) { Stepper_1_Stop(); entry_SOLO_INtoSPLEISSER(); } break; case SOLO_INtoSPLEISSER: DisplaySendeBefehl(0x0C); gotoxy(1, 1); DisplaySendeString("Filament rechts"); gotoxy(1, 3); DisplaySendeString("bereit"); gotoxy(1, 4); DisplaySendeString("Weiter Abbruch"); zeit = machNichts.read(); if(zeit >= WARTEZEIT) { entry_SOLO_DEFAULT(); } if(buttonAbbruch_pressed == true) { buttonAbbruch_pressed = false; buttonAbbruch_diable_cb(); entry_SOLO_DEFAULT(); } if(buttonSTART_pressed == true) { buttonSTART_pressed = false; buttonSTART_diable_cb(); entry_SOLO_EinlegenOUT(); } break; case SOLO_EinlegenOUT: DisplaySendeBefehl(0x0C); gotoxy(1, 1); DisplaySendeString("Filament links"); gotoxy(1, 3); DisplaySendeString("einlegen"); gotoxy(1, 4); DisplaySendeString(" Abbruch"); if(buttonAbbruch_pressed == true) { buttonAbbruch_pressed = false; buttonAbbruch_diable_cb(); entry_SOLO_DEFAULT(); } zeit = machNichts.read(); if(zeit >= WARTEZEIT) { entry_SOLO_DEFAULT(); } val_LS3 = LS_3.read(); if(val_LS3 == 1) { Stepper_2_Run('R', 100); /// das isch no Scheisse } else if (val_LS3 == 0) { Stepper_2_Stop(); entry_SOLO_OUTtoSPLEISSER(); } break; case SOLO_OUTtoSPLEISSER: DisplaySendeBefehl(0x0C); gotoxy(1, 1); DisplaySendeString("Filament links"); gotoxy(1, 3); DisplaySendeString("bereit"); gotoxy(1, 4); DisplaySendeString("Spleissen Abbruch"); zeit = machNichts.read(); if(zeit >= WARTEZEIT) { entry_SOLO_DEFAULT(); } if(buttonAbbruch_pressed == true) { buttonAbbruch_pressed = false; buttonAbbruch_diable_cb(); entry_SOLO_DEFAULT(); } if(buttonSTART_pressed == true) { buttonSTART_pressed = false; buttonSTART_diable_cb(); entry_SOLO_Spleissen(); } break; case SOLO_Spleissen: //DisplaySendeBefehl(0x0C); gotoxy(1, 1); DisplaySendeString("Spleissen"); gotoxy(1, 3); DisplaySendeString("Spleissen"); motors[1]->set_max_speed(50); //motors[1]->set_acceleration(5); Stepper_2_Move('R', 1.3*400); StatusSOLO = SOLO_FERTIG; break; case SOLO_FERTIG: motors[1]->set_max_speed(50); motors[1]->set_acceleration(10); motors[0]->set_max_speed(55); motors[0]->set_acceleration(10); //motors[0]->move(StepperMotor::FWD, 0.2*400*128); motors[1]->move(StepperMotor::FWD, 0.05*400*128); //Set_Cutter(400, 200, 4); motors[1]->wait_while_active(); motors[1]->set_max_speed(300); motors[1]->set_acceleration(300); motors[0]->set_max_speed(400); motors[0]->set_acceleration(400); motors[0]->move(StepperMotor::FWD, 1.2*400*128); motors[1]->move(StepperMotor::FWD, 1*400*128); motors[1]->wait_while_active(); Stepper_2_Leerlauf(); /* motors[0]->perform_prepared_actions(); motors2[0]->perform_prepared_actions(); */ //motors2[0]->perform_prepared_actions(); //Stepper_3_Move('V', 1.3*400); /* Stepper_3_Move('V', 1*400); Stepper_1_Move('V', 1*400); */ StatusSOLO = SOLO_STOERUNG; break; case SOLO_STOERUNG: gotoxy(1, 1); DisplaySendeString("fertigfertig"); gotoxy(1, 3); DisplaySendeString("fertigfertig"); break; } }