para el ventilador

Dependencies:   QEI FastPWM

Committer:
miguelangel_2511
Date:
Thu Apr 16 13:22:16 2020 +0000
Revision:
2:6f618b905d4f
Parent:
1:aa5df1878126
Child:
3:45299e7882b9
Los parametros del sistema fueron movidos desde tft_interface.cpp a ventilator.cpp.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miguelangel_2511 0:9d0b9785d3d6 1 #ifndef STEPPER_MOTOR_DRIVER_H_
miguelangel_2511 0:9d0b9785d3d6 2 #define STEPPER_MOTOR_DRIVER_H_
miguelangel_2511 0:9d0b9785d3d6 3
miguelangel_2511 0:9d0b9785d3d6 4 #include "mbed.h"
miguelangel_2511 1:aa5df1878126 5 #include "FastPWM.h"
miguelangel_2511 0:9d0b9785d3d6 6
miguelangel_2511 0:9d0b9785d3d6 7 #define STEPPER_PULSE_DUTY_CYCLE 0.5f
miguelangel_2511 0:9d0b9785d3d6 8 #define STEPPER_MOTOR_TOTAL_STEPS 6000
miguelangel_2511 0:9d0b9785d3d6 9
miguelangel_2511 0:9d0b9785d3d6 10 #define STEPPER_MOTOR_GO_HOME 0
miguelangel_2511 0:9d0b9785d3d6 11 #define STEPPER_MOTOR_GO_AHEAD 0
miguelangel_2511 0:9d0b9785d3d6 12
miguelangel_2511 0:9d0b9785d3d6 13
miguelangel_2511 1:aa5df1878126 14 /* Type definition */
miguelangel_2511 0:9d0b9785d3d6 15
miguelangel_2511 1:aa5df1878126 16 typedef enum{
miguelangel_2511 1:aa5df1878126 17 Stepper_Stand_By = 0,
miguelangel_2511 1:aa5df1878126 18 Stepper_Inspiration_Rising_Ramp,
miguelangel_2511 1:aa5df1878126 19 Stepper_Inspiration,
miguelangel_2511 1:aa5df1878126 20 Stepper_Inspiration_Falling_Ramp,
miguelangel_2511 1:aa5df1878126 21 Stepper_Inspiration_Finish,
miguelangel_2511 1:aa5df1878126 22 Stepper_Expiration_Rising_Ramp,
miguelangel_2511 1:aa5df1878126 23 Stepper_Expiration,
miguelangel_2511 1:aa5df1878126 24 Stepper_Expiration_Falling_Ramp,
miguelangel_2511 1:aa5df1878126 25 Stepper_Expiration_Finish,
miguelangel_2511 1:aa5df1878126 26 Stepper_Limit_Sensor_Error
miguelangel_2511 1:aa5df1878126 27 }Stepper_Driver_State_t;
miguelangel_2511 0:9d0b9785d3d6 28
miguelangel_2511 0:9d0b9785d3d6 29
miguelangel_2511 1:aa5df1878126 30 /* Object declaration */
miguelangel_2511 1:aa5df1878126 31 extern InterruptIn stepper_pulse_feedback;
miguelangel_2511 1:aa5df1878126 32 extern FastPWM stepper_pulse;
miguelangel_2511 1:aa5df1878126 33 extern DigitalOut stepper_en;
miguelangel_2511 1:aa5df1878126 34 extern DigitalOut stepper_dir;
miguelangel_2511 1:aa5df1878126 35
miguelangel_2511 1:aa5df1878126 36 /* Variable declaration */
miguelangel_2511 1:aa5df1878126 37
miguelangel_2511 1:aa5df1878126 38 // Tables for calculations
miguelangel_2511 1:aa5df1878126 39 extern const float sigma_ramp[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 40 extern uint32_t calibration_period_rise_ramp_us[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 41 extern uint32_t inspiration_period_rise_ramp_us[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 42 extern uint32_t expiration_period_rise_ramp_us[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 43
miguelangel_2511 1:aa5df1878126 44 // These parameters are configurer through the graphic interface */
miguelangel_2511 1:aa5df1878126 45 extern uint32_t inspiration_stepper_pulses_setpoint;
miguelangel_2511 1:aa5df1878126 46 //uint32_t expiration_stepper_pulses_setpoint; // Not used in this version
miguelangel_2511 1:aa5df1878126 47 extern uint32_t inspiration_stepper_pulse_period_us;
miguelangel_2511 1:aa5df1878126 48 extern uint32_t expiration_stepper_pulse_period_us;
miguelangel_2511 1:aa5df1878126 49 extern uint32_t calibration_stepper_pulse_period_us;
miguelangel_2511 1:aa5df1878126 50 extern uint32_t volume_in_steps[VOLUME_SETPOINT_INDEX_LIMIT];
miguelangel_2511 1:aa5df1878126 51
miguelangel_2511 1:aa5df1878126 52 // Variables used in every state of the stepper motor driver */
miguelangel_2511 1:aa5df1878126 53 extern volatile uint32_t stepper_pulse_counter;
miguelangel_2511 1:aa5df1878126 54 extern volatile uint32_t stepper_ramp_pulse_counter;
miguelangel_2511 1:aa5df1878126 55
miguelangel_2511 1:aa5df1878126 56 extern volatile Stepper_Driver_State_t stepper_driver_state;
miguelangel_2511 1:aa5df1878126 57
miguelangel_2511 1:aa5df1878126 58 /* Function declaration */
miguelangel_2511 1:aa5df1878126 59 void Stepper_Driver_Init(void);
miguelangel_2511 1:aa5df1878126 60 void Stepper_Calculate_Period_Ramp(void);
miguelangel_2511 1:aa5df1878126 61 void Stepper_Go_Home_Position(void);
miguelangel_2511 1:aa5df1878126 62 void Stepper_Driver_State_Machine(void);
miguelangel_2511 1:aa5df1878126 63 void Stepper_Driver_Pulse_Signal_Update(void);
miguelangel_2511 1:aa5df1878126 64
miguelangel_2511 0:9d0b9785d3d6 65 #endif