X-Git-Url: https://rtime.felk.cvut.cz/gitweb/fpga/rpi-motor-control.git/blobdiff_plain/5d8290ceb4f6810b3bf47d15bcbb0fc63ff4a837..HEAD:/pmsm-control/test_sw/pmsm_state.c diff --git a/pmsm-control/test_sw/pmsm_state.c b/pmsm-control/test_sw/pmsm_state.c index 9721490..acfd347 100644 --- a/pmsm-control/test_sw/pmsm_state.c +++ b/pmsm-control/test_sw/pmsm_state.c @@ -1,10 +1,11 @@ #include "pmsm_state.h" #include "commutators.h" +#include "controllers.h" /** * Index Lost. */ -void setIndexLost(struct rpi_state* this){ +inline void setIndexLost(struct rpi_state* this){ this->index_ok=0; this->main_commutator=simple_hall_commutator; } @@ -12,7 +13,7 @@ void setIndexLost(struct rpi_state* this){ /** * Index OK. */ -void setIndexOK(struct rpi_state* this){ +inline void setIndexOK(struct rpi_state* this){ this->index_ok=1; this->main_commutator=inv_trans_comm_2; } @@ -20,7 +21,7 @@ void setIndexOK(struct rpi_state* this){ /** * Turn commutation on. */ -void setCommutationOn(struct rpi_state* this){ +inline void setCommutationOn(struct rpi_state* this){ this->commutate=1; if (this->index_ok){ this->main_commutator=inv_trans_comm_2; @@ -32,7 +33,36 @@ void setCommutationOn(struct rpi_state* this){ /** * Turn commutation off. */ -void setCommutationOff(struct rpi_state* this){ +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; + + +}