LEX_Threaded_Programming

Dependencies:   Heater_V2 MODSERIAL Nanopb FastPWM ADS8568_ADC

Revision:
22:f65353f6e935
Parent:
20:ccbe2a03893d
Child:
23:d00849a9aa23
--- a/main.cpp	Tue Sep 24 08:38:40 2019 +0000
+++ b/main.cpp	Tue Sep 24 15:15:03 2019 +0000
@@ -281,7 +281,7 @@
     else pc.printf("Drive board UID match not found\n");
 
     buffer_length = sizeof(buffer)/sizeof(uint8_t);
-    pc.printf("# Input configuration file\n");
+    pc.printf("# Input [CONFIGURATION] file\n");
         
     //set up nanopb
     std::vector<memspcr_ThermalStep> profile;
@@ -322,21 +322,13 @@
     
     //Start pressure control
     pc.printf("# Pressure setpoint: %10.6f hystersess: %10.6f\n",exp_config.fluidics.pressure_sensor_setpoint_adc, exp_config.fluidics.pressure_sensor_hysteresis_adc);
-    pc.printf("# Waiting for signal to begin pressure control (type p or press button 0)\n");
+    pc.printf("# Waiting for signal to begin [PRESSURE] control (type p or press button 0)\n");
     while (pc.getcNb()!='p' && !user_0);
     pc.printf("# Pressure control start signal received\n");
     pressure_thread.start(& pressure_control);
     pressure_tick.attach_us(& pressure_trigger, exp_config.fluidics.pressure_control_loop_interval_ms * 1000); 
 
-    //Start temperature control
-    pc.printf("# Waiting for signal to begin temperature control (type s or press button 0)\n");
-    while (pc.getcNb()!='s' && !user_0);
-    pc.printf("# Temperature control start signal received\n");
-
-    heater->Set_ref(0.0);
-    heater_control.start(& temp_control);
-    heat_tick.attach_us(& temp_trigger,exp_config.thermal.control_loop_interval_ms * 1000);  
-
+    
     //Start logging
     logging_thread.start(& log_state);
     log_tick.attach_us(& log_trigger,exp_config.logging_interval_ms * 1000);
@@ -344,6 +336,17 @@
     pc.printf("# Starting routine\n");
     pc.printf("#   heater,  time(ms),         r,      rSet,       pIn,      pOut\n");
     timer.start();
+    
+    //Start temperature control
+    pc.printf("# Waiting for signal to begin [THERMAL] control (type s or press button 0)\n");
+    while (pc.getcNb()!='s' && !user_0);
+    pc.printf("# Thermal control start signal received\n");
+    pc.printf("#   heater,  time(ms),         r,      rSet,       pIn,      pOut\n");
+
+    heater->Set_ref(0.0);
+    heater_control.start(& temp_control);
+    heat_tick.attach_us(& temp_trigger,exp_config.thermal.thermal_control_loop_interval_ms * 1000);  
+
     set_point_routine(profile);
     
     //Turn off