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