para el ventilador

Dependencies:   QEI FastPWM

Revision:
1:aa5df1878126
Parent:
0:9d0b9785d3d6
Child:
2:6f618b905d4f
--- a/stepper_motor_driver.h	Sat Apr 11 22:53:05 2020 +0000
+++ b/stepper_motor_driver.h	Thu Apr 16 13:02:36 2020 +0000
@@ -2,9 +2,8 @@
 #define STEPPER_MOTOR_DRIVER_H_
 
 #include "mbed.h"
-
+#include "FastPWM.h"
 
-#define STEPPER_PULSE_PERIOD        0.0002f
 #define STEPPER_PULSE_DUTY_CYCLE    0.5f
 #define STEPPER_MOTOR_TOTAL_STEPS   6000
 
@@ -12,15 +11,56 @@
 #define STEPPER_MOTOR_GO_AHEAD      0
 
 
-/* Object declaration */
-extern PwmOut stepper_pulse;
-extern DigitalOut  stepper_en;
-extern DigitalOut  stepper_dir;
+/* Type definition */
 
-extern uint8_t stepper_motor_state;
-
-void Stepper_Motor_Go_Home(void);
-void Stepper_Motor_Go_Ahead(void);
+typedef enum{
+    Stepper_Stand_By = 0,
+    Stepper_Inspiration_Rising_Ramp,
+    Stepper_Inspiration,
+    Stepper_Inspiration_Falling_Ramp,
+    Stepper_Inspiration_Finish,
+    Stepper_Expiration_Rising_Ramp,
+    Stepper_Expiration,
+    Stepper_Expiration_Falling_Ramp,
+    Stepper_Expiration_Finish,
+    Stepper_Limit_Sensor_Error    
+}Stepper_Driver_State_t;
 
 
+/* Object declaration */
+extern InterruptIn stepper_pulse_feedback;
+extern FastPWM stepper_pulse;
+extern DigitalOut stepper_en;
+extern DigitalOut stepper_dir;
+
+/* Variable declaration */
+
+// Tables for calculations
+extern const float sigma_ramp[RAMP_STEPS];
+extern const float i_e_ratio_stepper_table[I_E_RATIO_INDEX_LIMIT][2];
+extern uint32_t calibration_period_rise_ramp_us[RAMP_STEPS];
+extern uint32_t inspiration_period_rise_ramp_us[RAMP_STEPS];
+extern uint32_t expiration_period_rise_ramp_us[RAMP_STEPS];
+
+// These parameters are configurer through the graphic interface */
+extern uint32_t inspiration_stepper_pulses_setpoint;
+//uint32_t expiration_stepper_pulses_setpoint; // Not used in this version
+extern uint32_t inspiration_stepper_pulse_period_us;
+extern uint32_t expiration_stepper_pulse_period_us;
+extern uint32_t calibration_stepper_pulse_period_us;
+extern uint32_t volume_in_steps[VOLUME_SETPOINT_INDEX_LIMIT];
+
+// Variables used in every state of the stepper motor driver */
+extern volatile uint32_t stepper_pulse_counter;
+extern volatile uint32_t stepper_ramp_pulse_counter;
+
+extern volatile Stepper_Driver_State_t stepper_driver_state;
+
+/* Function declaration */
+void Stepper_Driver_Init(void);
+void Stepper_Calculate_Period_Ramp(void);
+void Stepper_Go_Home_Position(void);
+void Stepper_Driver_State_Machine(void);
+void Stepper_Driver_Pulse_Signal_Update(void);
+
 #endif
\ No newline at end of file