pachas

Dependencies:   mbed QEI FastPWM

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?

UserRevisionLine numberNew 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 }