MODSERIAL PID controller edit
Dependencies: HIDScope MODSERIAL QEI biquadFilter mbed
Fork of PID_controller_Motor by
Diff: main.cpp
- Revision:
- 14:f51d51395803
- Parent:
- 13:b0d3c547bf2f
- Child:
- 15:3f3d87513a6b
--- a/main.cpp Fri Oct 21 08:44:18 2016 +0000 +++ b/main.cpp Fri Oct 21 09:12:36 2016 +0000 @@ -50,6 +50,9 @@ // HET VASTSTELLEN VAN ALLE TE GEBRUIKEN VARIABELEN EN CONSTANTEN ====================================================== +enum states_enum{off, init_m1, init_m2, run}; // De states waar de main loop doorheen loopt, off is uit, init is intialiseren en run is het aanturen vd motoren met emg. +states_enum states = off; + bool starting = false; // conditie om programma te starten @@ -219,7 +222,18 @@ // De go-flag functies ----------------------------------------------------------------- void flag1_activate(){flag1=true;} // Activeert de flag -void flag2_activate(){flag2=true;} +void flag2_activate(){flag2=true;} + + +// De initialiseren functie ------------------------------------------------------------ +void initialise_m1(){ + if (flag1){ + flag1 = false; + ledred = !ledred; + PID_output_1_in = PID_controller(reference_position_motor1, get_position_m1(rad_per_count)+starting_pos_m1, error_prev_1_in, error_int_1_in, Kp_1, Kd_1, Ki_1); + set_motor1(PID_output_1_in); + } +} @@ -237,7 +251,30 @@ test_ticker.attach(&flag1_activate,0.1); // Activeert de go-flag van motor positie hidscope_ticker.attach(&flag2_activate,0.01); - while(1){ + while(safe){ + switch(states){ + case off : // Dan staat het programma stil en gebeurt er niks + break; + case init_m1 : // Hier voert hij alleen het initialiseren van motor 1 uit + initialise_m1; + break; + case + + + + + } + + + + + + + + + + + if(starting){ // Activeert het programma // Initialisatie --------------------------------------- @@ -276,7 +313,6 @@ motor2_speed_pin = 0; } } -}