![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
LEX_Threaded_Programming
Dependencies: Heater_V2 MODSERIAL Nanopb FastPWM ADS8568_ADC
Diff: main.cpp
- 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