Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 /** 00002 *Zustansautomat zur Lageregelung der Beschichtungskante einer Elektrodenbahn für ein Feinstanz-Maschinenmoduls in der 00003 * Lithium-Ionen-Zellen Fertigung. 00004 * 00005 *Der Zustandsautomat enthält einen Handbetrieb und einen Automatikbetrieb. 00006 *Im Handbetrieb kann der Tisch mit der Abwickeleinheit für die Elktrodenbahn manuell in (+/-) y-Richtung bewegt werden. 00007 *Im Automatikbetrieb wird ein als P-Regler zur regelung der Position der Beschichtungskante ausgeführt. 00008 * 00009 *CPP-Datei main.cpp 00010 * 00011 *@version: 01.11.2015 00012 *@author: Gustav Grether & Julian Mueller 00013 */ 00014 #include "mbed.h" 00015 #include "edge_func.h" 00016 #include "auto_func.h" 00017 #include "hand_func.h" 00018 #include "mtr_func.h" 00019 #include "regler.h" 00020 00021 00022 int main() 00023 { 00024 sens_setup(); //setup des Sensors 00025 //Timer für Schalterentprellung starten 00026 debLe.start(); 00027 debMi.start(); 00028 debRi.start(); 00029 00030 //Zustandsautomat 00031 while(1) { 00032 // 00033 //Automatikbetrieb -> direktes Starten im Auto-Betrieb 00034 // 00035 mtr_en_set(1); //Motor einschalten 00036 mtr_period_set(0);//Motor bewegungslos 00037 00038 auto_setup();//startet getaktetes Sensorauslesen und Reglung 00039 while(1) { 00040 if(butLe==1 && debLe.read_ms()>500) {//aendere kp Proportionalverstaerkung 00041 debLe.reset(); 00042 auto_kp_set(); 00043 regler_end(); 00044 } else if(butMi==1 && debMi.read_ms()>500) {//aendere Sollwert 00045 debMi.reset(); 00046 auto_sollPx_set(); 00047 regler_end(); 00048 } else if(butRi==1 && debRi.read_ms()>500) { 00049 debLe.reset(); 00050 debMi.reset(); 00051 debRi.reset(); 00052 //wechsle in Handbetrieb 00053 auto_end();//Automatikbetrieb beenden, Reglerparameter speichern 00054 break; 00055 } 00056 } 00057 // 00058 //Handbetrieb 00059 // 00060 hand_setup();//aktualisiert Kantenposition auf Display 00061 mtr_en_set(1); //Motor einschalten 00062 mtr_period_set(0);//Motor bewegungslos 00063 00064 while(1) { 00065 if(butLe==1 && debLe.read_ms()>500) { 00066 00067 if(mtr_period_get()==0) { //Motor steht, Fahre nach +y 00068 mtr_dir_set(1); 00069 mtr_period_set(1000);//Periodendauer PWM T=1000 us 00070 lcd.locate(7,0); 00071 lcd.printf("MTR +y "); 00072 } else { //Motor bewegt sich 00073 mtr_period_set(0);//halte Motor an 00074 lcd.locate(7,0); 00075 lcd.printf("MTR stop"); 00076 } 00077 debLe.reset(); 00078 debMi.reset(); 00079 debRi.reset(); 00080 00081 } else if(butMi==1 && debMi.read_ms()>500) { 00082 if(mtr_period_get()==0) { //Motor steht, Fahre nach -y 00083 mtr_dir_set(0); 00084 mtr_period_set(1000);//Periodendauer PWM T=1500 us 00085 lcd.locate(7,0); 00086 lcd.printf("MTR -y "); 00087 } else { //Motor bewegt sich 00088 mtr_period_set(0);//halte Motor an 00089 lcd.locate(7,0); 00090 lcd.printf("MTR stop"); 00091 } 00092 debLe.reset(); 00093 debMi.reset(); 00094 debRi.reset(); 00095 } 00096 00097 else if(butRi==1 && debRi.read_ms()>500) { //wechsle in Automatikbetrieb 00098 mtr_period_set(0);//Motor bewegungslos 00099 debLe.reset(); 00100 debMi.reset(); 00101 debRi.reset(); 00102 break; 00103 } 00104 } 00105 hand_end(); 00106 00107 } 00108 }
Generated on Tue Jul 19 2022 13:01:49 by
1.7.2