![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
LEX_Threaded_Programming
Dependencies: Heater_V2 MODSERIAL Nanopb FastPWM ADS8568_ADC
Diff: main.cpp
- Revision:
- 11:7394f281e845
- Parent:
- 10:f8202e71e765
- Child:
- 12:cadcea541fbf
--- a/main.cpp Tue Sep 17 15:55:26 2019 +0000 +++ b/main.cpp Tue Sep 17 16:57:36 2019 +0000 @@ -26,13 +26,15 @@ //Pressure Control DigitalOut pump(PA_0); -float pres_in = 0.0; -float pres_out = 0.0; +//AnalogIn pressure_1(PA_3); +//AnalogIn pressure_2(PA_5); +float pressure_in = 0.0; +float pressure_out = 0.0; -//int pressure_setpoint = 2540; -//int pressure_hysteresis = 48; -//int pressure_setpoint_low = pressure_setpoint - pressure_hysteresis/2; -//int pressure_setpoint_high = pressure_setpoint + pressure_hysteresis/2; +float pressure_set = 0.5; +float pressure_hys = 0.005; +float pressure_set_low = pressure_set - pressure_hys/2; +float pressure_set_high = pressure_set + pressure_hys/2; //Heater Control FastPWM drive_main(PC_9); @@ -51,7 +53,6 @@ //Illumination LED Control - //Indicator LEDs DigitalOut hb_led(PC_13); //Green DigitalOut led_0(PC_4); //Red @@ -161,13 +162,15 @@ void pressure_control() { -// if (pressure < pressure_setpoint_low) { + //Read pressure values from ADC + //Float 0.0 to 1.0 maps to 0 to Vcc +// pressure_in = pressure_1.read(); +// pressure_out = pressure_2.read(); +// if (pressure_1 < pressure_set_low) { // pump = 1; -// valve_pres = 1; // } -// else if (pressure > pressure_setpoint_high) { +// else if (pressure_1 > pressure_set_high) { // pump = 0; -// valve_pres = 0; // } led_1 = !led_1; pump = !pump; @@ -191,7 +194,7 @@ while(1){ flags.wait_any(0x2,osWaitForever,true); //Output time, R_ref, R, error, error_integrated - pc.printf("%10d,%10d,%10.6f,%10.6f,%10.6f,%10.6f\n", heater_ID, timer.read_ms(), heater->Get_R(), heater->Get_R_ref(), pres_in, pres_out); + pc.printf("%10d,%10d,%10.6f,%10.6f,%10.6f,%10.6f\n", heater_ID, timer.read_ms(), heater->Get_R(), heater->Get_R_ref(), pressure_in, pressure_out); } } @@ -285,7 +288,7 @@ log_tick.attach_us(& log_trigger,exp_config.logging_interval_ms * 1000); pc.printf("# Starting routine...\n"); - pc.printf("# heater, time(ms), r, rSet, pres_in, pres_out\n"); + pc.printf("# heater, time(ms), r, rSet, pIn, pOut\n"); timer.start(); set_point_routine(profile);