Issue #4: Implement Constant temperature function in GUI. This is useful to verify the oven parameters
This commit is contained in:
@@ -112,7 +112,7 @@ static volatile struct error_flag IN_SECTION(.ccm.data) flags[] = {
|
||||
};
|
||||
|
||||
static volatile struct timing_mon IN_SECTION(.ccm.data) timings[] = {
|
||||
TIM_MON_ENTRY(ERR_TIMING_PID, 2, 1000, ERR_FLAG_TIMING_PID),
|
||||
TIM_MON_ENTRY(ERR_TIMING_PID, 2, 5000, ERR_FLAG_TIMING_PID),
|
||||
TIM_MON_ENTRY(ERR_TIMING_MEAS_ADC, 0, 50, ERR_FLAG_TIMING_MEAS_ADC),
|
||||
TIM_MON_ENTRY(ERR_TIMING_SAFETY_ADC, 10, SAFETY_CONTROLLER_ADC_DELAY_MS + 1000, ERR_FLAG_SAFETY_ADC),
|
||||
TIM_MON_ENTRY(ERR_TIMING_MAIN_LOOP, 0, 1000, ERR_FLAG_TIMING_MAIN_LOOP),
|
||||
@@ -538,6 +538,7 @@ static void safety_controller_handle_safety_adc()
|
||||
{
|
||||
static uint64_t last_result_timestamp = 0;
|
||||
const uint16_t *channels;
|
||||
uint32_t sum;
|
||||
int poll_result;
|
||||
float analog_value;
|
||||
|
||||
@@ -546,9 +547,19 @@ static void safety_controller_handle_safety_adc()
|
||||
if (poll_result == 1) {
|
||||
/* Data available */
|
||||
channels = safety_adc_get_values();
|
||||
analog_value = safety_adc_convert_channel(SAFETY_ADC_MEAS_TEMP, channels[0]);
|
||||
|
||||
/* Compute average of temp readings */
|
||||
sum = channels[0] + channels[1] + channels[2] + channels[3];
|
||||
sum /= 4;
|
||||
|
||||
analog_value = safety_adc_convert_channel(SAFETY_ADC_MEAS_TEMP, (uint16_t)sum);
|
||||
safety_controller_report_analog_value(ERR_AMON_UC_TEMP, analog_value);
|
||||
analog_value = safety_adc_convert_channel(SAFETY_ADC_MEAS_VREF, channels[1]);
|
||||
|
||||
/* Average VREF readings */
|
||||
sum = channels[4] + channels[5] + channels[6] + channels[7];
|
||||
sum /= 4;
|
||||
|
||||
analog_value = safety_adc_convert_channel(SAFETY_ADC_MEAS_VREF, (uint16_t)sum);
|
||||
safety_controller_report_analog_value(ERR_AMON_VREF, analog_value);
|
||||
last_result_timestamp = systick_get_global_tick();
|
||||
safety_controller_report_timing(ERR_TIMING_SAFETY_ADC);
|
||||
|
Reference in New Issue
Block a user