Miguel Angel Caycho
/
Pruebas_Ventilador_Eplimin_01_Backup
para el ventilador
main.cpp@7:f4e248182d31, 2020-04-20 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Mon Apr 20 21:58:36 2020 +0000
- Revision:
- 7:f4e248182d31
- Parent:
- 6:d38287621cca
- Child:
- 8:208d965a3bd2
Se agregaron sensores de presion, cuyos valores medidos son mostrados en la pantalla.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miguelangel_2511 | 0:9d0b9785d3d6 | 1 | #include "mbed.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 2 | #include "stdint.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 3 | #include "project_defines.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 4 | #include "buttons.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 5 | #include "encoder_interface.h" |
miguelangel_2511 | 6:d38287621cca | 6 | #include "nextion_interface.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 7 | #include "stepper_motor_driver.h" |
miguelangel_2511 | 7:f4e248182d31 | 8 | #include "pressure_sensors.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 9 | #include "ventilator.h" |
miguelangel_2511 | 0:9d0b9785d3d6 | 10 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 11 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 12 | // ****************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 13 | // OBJECT CONSTRUCTION |
miguelangel_2511 | 0:9d0b9785d3d6 | 14 | // ****************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 15 | |
miguelangel_2511 | 3:45299e7882b9 | 16 | Ticker ticker_int_10us; // Ticker interrupt |
miguelangel_2511 | 0:9d0b9785d3d6 | 17 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 18 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 19 | // ****************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 20 | // GLOBAL VARIABLES |
miguelangel_2511 | 0:9d0b9785d3d6 | 21 | // ****************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 22 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 23 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 24 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 25 | // ****************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 26 | // FUNCTION DECLARATION |
miguelangel_2511 | 0:9d0b9785d3d6 | 27 | // ****************************** |
miguelangel_2511 | 0:9d0b9785d3d6 | 28 | void Ticker_ISR(void); // ISR that is called when the timer reaches the set value |
miguelangel_2511 | 0:9d0b9785d3d6 | 29 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 30 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 31 | int main(void) { |
miguelangel_2511 | 3:45299e7882b9 | 32 | Buttons_Initialize(); |
miguelangel_2511 | 3:45299e7882b9 | 33 | ticker_int_10us.attach(&Ticker_ISR, 0.01); |
miguelangel_2511 | 6:d38287621cca | 34 | Nextion_Interface_Initialize(); |
miguelangel_2511 | 7:f4e248182d31 | 35 | Pressure_Sensors_Initialize(); |
miguelangel_2511 | 1:aa5df1878126 | 36 | Stepper_Driver_Init(); |
miguelangel_2511 | 1:aa5df1878126 | 37 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 38 | while(1){ |
miguelangel_2511 | 1:aa5df1878126 | 39 | Stepper_Driver_State_Machine(); |
miguelangel_2511 | 7:f4e248182d31 | 40 | |
miguelangel_2511 | 6:d38287621cca | 41 | Nextion_Encoder_Interaction(); |
miguelangel_2511 | 7:f4e248182d31 | 42 | |
miguelangel_2511 | 7:f4e248182d31 | 43 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 7:f4e248182d31 | 44 | Pressure_Sensors_Read(); |
miguelangel_2511 | 7:f4e248182d31 | 45 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 7:f4e248182d31 | 46 | } |
miguelangel_2511 | 7:f4e248182d31 | 47 | /* |
miguelangel_2511 | 7:f4e248182d31 | 48 | if((stepper_driver_state != Stepper_Inspiration_Finish) && |
miguelangel_2511 | 7:f4e248182d31 | 49 | (stepper_driver_state != Stepper_Expiration_Finish)){ |
miguelangel_2511 | 7:f4e248182d31 | 50 | if(pressure_sensor_display_update_flag){ |
miguelangel_2511 | 7:f4e248182d31 | 51 | Nextion_Update_Sensor_Values(); |
miguelangel_2511 | 7:f4e248182d31 | 52 | pressure_sensor_display_update_flag = 0; |
miguelangel_2511 | 7:f4e248182d31 | 53 | } |
miguelangel_2511 | 7:f4e248182d31 | 54 | |
miguelangel_2511 | 7:f4e248182d31 | 55 | if(pressure_sensor_waveform_update_flag){ |
miguelangel_2511 | 7:f4e248182d31 | 56 | Nextion_Update_Waveform_Values(); |
miguelangel_2511 | 7:f4e248182d31 | 57 | pressure_sensor_waveform_update_flag = 0; |
miguelangel_2511 | 7:f4e248182d31 | 58 | } |
miguelangel_2511 | 7:f4e248182d31 | 59 | |
miguelangel_2511 | 7:f4e248182d31 | 60 | } |
miguelangel_2511 | 7:f4e248182d31 | 61 | */ |
miguelangel_2511 | 0:9d0b9785d3d6 | 62 | } |
miguelangel_2511 | 0:9d0b9785d3d6 | 63 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 64 | return 0; |
miguelangel_2511 | 0:9d0b9785d3d6 | 65 | } |
miguelangel_2511 | 0:9d0b9785d3d6 | 66 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 67 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 68 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 69 | // Ticker Interrupt Service Routine |
miguelangel_2511 | 3:45299e7882b9 | 70 | void Ticker_ISR(void){ |
miguelangel_2511 | 1:aa5df1878126 | 71 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 72 | static uint8_t conta_10ms = 0; |
miguelangel_2511 | 0:9d0b9785d3d6 | 73 | |
miguelangel_2511 | 7:f4e248182d31 | 74 | Encoder_Read(); |
miguelangel_2511 | 0:9d0b9785d3d6 | 75 | Button_Debounce(); |
miguelangel_2511 | 0:9d0b9785d3d6 | 76 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 77 | conta_10ms++; |
miguelangel_2511 | 0:9d0b9785d3d6 | 78 | |
miguelangel_2511 | 7:f4e248182d31 | 79 | if(conta_10ms == 10){ |
miguelangel_2511 | 0:9d0b9785d3d6 | 80 | conta_10ms = 0; |
miguelangel_2511 | 7:f4e248182d31 | 81 | read_pressure_sensors_flag = 1; |
miguelangel_2511 | 7:f4e248182d31 | 82 | pressure_sensor_display_update_flag = 1; |
miguelangel_2511 | 7:f4e248182d31 | 83 | pressure_sensor_waveform_update_flag = 1; |
miguelangel_2511 | 0:9d0b9785d3d6 | 84 | } |
miguelangel_2511 | 3:45299e7882b9 | 85 | |
miguelangel_2511 | 3:45299e7882b9 | 86 | } |