]> rtime.felk.cvut.cz Git - fpga/rpi-motor-control.git/blobdiff - pmsm-control/test_sw/pmsm_state.c
Regulation function now implemented with use of polymorphism.
[fpga/rpi-motor-control.git] / pmsm-control / test_sw / pmsm_state.c
index 3938dc7a9f60726e88408d5da742bb4de45c122c..acfd34732e4b967d40d3940fdad5615d2a447f29 100644 (file)
@@ -1,5 +1,6 @@
 #include "pmsm_state.h"
 #include "commutators.h"
+#include "controllers.h"
 
 /**
  * Index Lost.
@@ -36,3 +37,32 @@ inline void setCommutationOff(struct rpi_state* this){
        this->commutate=0;
        this->main_commutator=zero_commutator;
 }
+
+/**
+ * Turn on speed regulation.
+ */
+inline void setRegulationSpeed(struct rpi_state* this){
+       this->spd_reg_ena=1;
+       this->pos_reg_ena=0;
+       this->main_controller=spd_pid;
+}
+
+/**
+ * \brief Turn on position regulation
+ */
+inline void setRegulationPos(struct rpi_state* this){
+       this->spd_reg_ena=0;
+       this->pos_reg_ena=1;
+       this->main_controller=pos_pid;
+}
+
+/**
+ * \brief Turn off regulation.
+ */
+inline void setRegulationOff(struct rpi_state* this){
+       this->spd_reg_ena=0;
+       this->pos_reg_ena=0;
+       this->main_controller=zero_controller;
+
+
+}