Matti Borchers / Mbed 2 deprecated mbed_amf_controlsystem_state_machine

Dependencies:   mbed-rtos mbed

Fork of mbed_amf_controlsystem_iO_copy by Matti Borchers

Files at this revision

API Documentation at this revision

Comitter:
mborchers
Date:
Thu Feb 04 09:33:42 2016 +0000
Parent:
3:391c4639bc7d
Child:
5:4319a748181a
Child:
7:c5940ae7773a
Commit message:
Fehler behoben (s. Funktion "redirect_quadrature_controller")

Changed in this revision

Controller/QuadratureController.cpp Show annotated file Show diff for this revision Revisions of this file
Controller/QuadratureController.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Controller/QuadratureController.cpp	Thu Feb 04 08:54:06 2016 +0000
+++ b/Controller/QuadratureController.cpp	Thu Feb 04 09:33:42 2016 +0000
@@ -30,7 +30,7 @@
     }
 }
 
-void QuadratureController::cylic_control(void const *args) {
+void QuadratureController::cylic_control() {
     check_queues();
     
     q_e = steering_angle_set - steering_angle_current;
@@ -42,7 +42,7 @@
     q_output = feed_forward + q_PI_controller;
 
     if(q_output > 500){q_output = 500;}           // evtl Begrenzung schon auf z.b. 300/ -300 stellen (wegen Linearität)
-    if(q_output < -500){q_output = - 500;}
+    else if(q_output < -500){q_output = - 500;}
 
     q_PWM = 1500 + q_output;
     
--- a/Controller/QuadratureController.h	Thu Feb 04 08:54:06 2016 +0000
+++ b/Controller/QuadratureController.h	Thu Feb 04 09:33:42 2016 +0000
@@ -26,7 +26,7 @@
     void check_queues();
 public:
     QuadratureController(PwmOut *pwmOut);
-    void cylic_control(void const *args);
+    void cylic_control();
 };
 
 #endif
\ No newline at end of file
--- a/main.cpp	Thu Feb 04 08:54:06 2016 +0000
+++ b/main.cpp	Thu Feb 04 09:33:42 2016 +0000
@@ -23,6 +23,8 @@
 IMU_RegisterDataBuffer_t *IMU_registerDataBuffer;
 RadioDecoder_RegisterDataBuffer_t *RadioDecoder_registerDataBuffer;
 
+QuadratureController *quadratureController;
+
 // Queues von der Bahnplanung
 Queue<float, 2> quadrature_queue;
 Queue<float, 2> machine_direction_queue;
@@ -92,6 +94,10 @@
     drivePWM.pulsewidth_us(l_PWM);
 }
 
+void redirect_quadrature_controller(void const *args) {
+    quadratureController->cylic_control();
+}
+
 int main() {
     serialMinnow.baud(115200);
 
@@ -102,12 +108,12 @@
 
     SupportSystem *supportSystem = new SupportSystem(0x80, &i2c);
     
-    QuadratureController *quadratureController = new QuadratureController(&steerPWM);
+    quadratureController = new QuadratureController(&steerPWM);
 
     Thread machineDirectionControl(serial_thread);
     
     RtosTimer machine_direction_control_timer(machine_direction_control);
-    RtosTimer quadrature_control_timer(quadratureController->cylic_control);
+    RtosTimer quadrature_control_timer(redirect_quadrature_controller);
 
     // Konfiguration AMF-IMU
     // [0]: Conversation Factor