pachas
Dependencies: mbed QEI FastPWM
ventilator.h@11:5cb7ae8bd831, 2020-05-07 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Thu May 07 03:52:31 2020 +0000
- Revision:
- 11:5cb7ae8bd831
- Parent:
- 10:b2d87404309a
Se implemento un filtro IIIR tipo Chebyshev 2 Pasa-bajos de 30 Hz para cada sensor de presion. Asimismo, se implemento un filtro IIR Chebyshev 2 Pasa-altos de 0.01 Hz y un filtro FIR pasa-bajos de 40 Hz para la senial de flujo.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miguelangel_2511 | 0:9d0b9785d3d6 | 1 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 2 | #ifndef VENTILATOR_H_ |
miguelangel_2511 | 0:9d0b9785d3d6 | 3 | #define VENTILATOR_H_ |
miguelangel_2511 | 0:9d0b9785d3d6 | 4 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 5 | /* File inclusion */ |
miguelangel_2511 | 0:9d0b9785d3d6 | 6 | #include "mbed.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 7 | #include "stdint.h" |
miguelangel_2511 | 3:45299e7882b9 | 8 | #include "encoder_interface.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 9 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 10 | /* Type definition */ |
miguelangel_2511 | 0:9d0b9785d3d6 | 11 | typedef enum { |
miguelangel_2511 | 0:9d0b9785d3d6 | 12 | Main_Screen_Cursor_Disable = 0, |
miguelangel_2511 | 0:9d0b9785d3d6 | 13 | Main_Screen_Cursor_Enable = 1, |
miguelangel_2511 | 0:9d0b9785d3d6 | 14 | Main_Screen_Volume_Setpoint_Adjust = 2, |
miguelangel_2511 | 0:9d0b9785d3d6 | 15 | Main_Screen_Resp_Frequency_Adjust = 3, |
miguelangel_2511 | 0:9d0b9785d3d6 | 16 | Main_Screen_I_E_Ratio_Adjust = 4 |
miguelangel_2511 | 1:aa5df1878126 | 17 | }Main_Screen_State_t; |
miguelangel_2511 | 0:9d0b9785d3d6 | 18 | |
miguelangel_2511 | 8:208d965a3bd2 | 19 | |
miguelangel_2511 | 8:208d965a3bd2 | 20 | /* Object declaration */ |
miguelangel_2511 | 8:208d965a3bd2 | 21 | extern Ticker ticker_int_1ms; |
miguelangel_2511 | 10:b2d87404309a | 22 | extern DigitalOut test_pin; |
miguelangel_2511 | 8:208d965a3bd2 | 23 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 24 | /* Global variable declaration */ |
miguelangel_2511 | 7:f4e248182d31 | 25 | extern volatile uint8_t read_pressure_sensors_flag; |
miguelangel_2511 | 7:f4e248182d31 | 26 | extern volatile uint8_t pressure_sensor_display_update_flag; |
miguelangel_2511 | 7:f4e248182d31 | 27 | extern volatile uint8_t pressure_sensor_waveform_update_flag; |
miguelangel_2511 | 2:6f618b905d4f | 28 | |
miguelangel_2511 | 2:6f618b905d4f | 29 | extern uint16_t volume_setpoint; |
miguelangel_2511 | 2:6f618b905d4f | 30 | extern uint8_t resp_frequency; |
miguelangel_2511 | 2:6f618b905d4f | 31 | extern float inspiration_time; |
miguelangel_2511 | 2:6f618b905d4f | 32 | extern float expiration_time; |
miguelangel_2511 | 2:6f618b905d4f | 33 | |
miguelangel_2511 | 1:aa5df1878126 | 34 | extern Main_Screen_State_t main_screen_state; |
miguelangel_2511 | 0:9d0b9785d3d6 | 35 | extern uint8_t first_time_in_state; |
miguelangel_2511 | 0:9d0b9785d3d6 | 36 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 37 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 38 | /* Function declaration */ |
miguelangel_2511 | 8:208d965a3bd2 | 39 | void System_Initialize(void); |
miguelangel_2511 | 6:d38287621cca | 40 | void Nextion_Encoder_Interaction(void); |
miguelangel_2511 | 7:f4e248182d31 | 41 | void Nextion_Update_Sensor_Values(void); |
miguelangel_2511 | 7:f4e248182d31 | 42 | void Nextion_Update_Waveform_Values(void); |
miguelangel_2511 | 8:208d965a3bd2 | 43 | void Ticker_ISR(void); // ISR that is called when the timer reaches the set value |
miguelangel_2511 | 0:9d0b9785d3d6 | 44 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 45 | /* Inline functions */ |
miguelangel_2511 | 0:9d0b9785d3d6 | 46 | static inline void Encoder_Read(){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 47 | |
miguelangel_2511 | 1:aa5df1878126 | 48 | if(main_screen_state == Main_Screen_Cursor_Enable){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 49 | Parameter_Selection_Index_Update(); |
miguelangel_2511 | 1:aa5df1878126 | 50 | }else if(main_screen_state == Main_Screen_Volume_Setpoint_Adjust){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 51 | Volume_Setpoint_Index_Update(); |
miguelangel_2511 | 1:aa5df1878126 | 52 | }else if(main_screen_state == Main_Screen_Resp_Frequency_Adjust){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 53 | Resp_Frequency_Index_Update(); |
miguelangel_2511 | 1:aa5df1878126 | 54 | }else if(main_screen_state == Main_Screen_I_E_Ratio_Adjust){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 55 | I_E_Ratio_Index_Update(); |
miguelangel_2511 | 0:9d0b9785d3d6 | 56 | }else{ |
miguelangel_2511 | 0:9d0b9785d3d6 | 57 | //Does nothing |
miguelangel_2511 | 0:9d0b9785d3d6 | 58 | } |
miguelangel_2511 | 0:9d0b9785d3d6 | 59 | } |
miguelangel_2511 | 0:9d0b9785d3d6 | 60 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 61 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 62 | #endif |