Fix safety issue #11
This commit is contained in:
		@@ -30,6 +30,8 @@
 | 
			
		||||
#include <reflow-controller/stack-check.h>
 | 
			
		||||
#include <helper-macros/helper-macros.h>
 | 
			
		||||
#include <reflow-controller/systick.h>
 | 
			
		||||
#include <stm32/stm32f4xx.h>
 | 
			
		||||
#include <cmsis/core_cm4.h>
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
@@ -148,11 +150,15 @@ static void safety_controller_process_active_timing_mons()
 | 
			
		||||
{
 | 
			
		||||
	uint32_t i;
 | 
			
		||||
	volatile struct timing_mon *current_mon;
 | 
			
		||||
	uint64_t last;
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < COUNT_OF(timings); i++) {
 | 
			
		||||
		current_mon = &timings[i];
 | 
			
		||||
		if (current_mon->enabled) {
 | 
			
		||||
			if (systick_ticks_have_passed(current_mon->last, current_mon->max_delta))
 | 
			
		||||
			__disable_irq();
 | 
			
		||||
			last = current_mon->last;
 | 
			
		||||
			__enable_irq();
 | 
			
		||||
			if (systick_ticks_have_passed(last, current_mon->max_delta))
 | 
			
		||||
				safety_controller_report_error(current_mon->associated_flag);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -164,12 +170,9 @@ static void safety_controller_process_checks()
 | 
			
		||||
	enum analog_monitor_status amon_state;
 | 
			
		||||
	float amon_value;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if (!startup_completed && systick_get_global_tick() >= 1000)
 | 
			
		||||
		startup_completed = true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if (startup_completed) {
 | 
			
		||||
		amon_state = safety_controller_get_analog_mon_value(ERR_AMON_VREF, &amon_value);
 | 
			
		||||
		if (amon_state != ANALOG_MONITOR_OK)
 | 
			
		||||
@@ -181,7 +184,6 @@ static void safety_controller_process_checks()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	safety_controller_process_active_timing_mons();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int safety_controller_report_error(enum safety_flag flag)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user