Compare commits

..

2 Commits

Author SHA1 Message Date
227562cf3c Load calibration when SD card is inserted.
* Load calibration when SD card is inserted and controller is not yet calibrated
* Fix #7: LED0 blinks when SD is inserted / removed.
2020-08-16 20:33:25 +02:00
58937b46f6 Improve code 2020-08-16 20:33:17 +02:00
3 changed files with 31 additions and 7 deletions

View File

@ -199,12 +199,12 @@ void adc_pt1000_set_resistance_calibration(float offset, float sensitivity_devia
void adc_pt1000_get_resistance_calibration(float *offset, float *sensitivity_deviation, bool *active) void adc_pt1000_get_resistance_calibration(float *offset, float *sensitivity_deviation, bool *active)
{ {
if (!offset || !sensitivity_deviation || !active) if (offset)
return; *offset = pt1000_offset;
if (sensitivity_deviation)
*offset = pt1000_offset; *sensitivity_deviation = pt1000_sens_dev;
*sensitivity_deviation = pt1000_sens_dev; if (active)
*active = calibration_active; *active = calibration_active;
} }
static inline float adc_pt1000_apply_calibration(float raw_resistance) static inline float adc_pt1000_apply_calibration(float raw_resistance)

View File

@ -44,6 +44,7 @@
#include <fatfs/ff.h> #include <fatfs/ff.h>
#include <reflow-controller/reflow-menu.h> #include <reflow-controller/reflow-menu.h>
#include <reflow-controller/safety/safety-controller.h> #include <reflow-controller/safety/safety-controller.h>
#include <reflow-controller/settings/settings.h>
static void setup_nvic_priorities(void) static void setup_nvic_priorities(void)
{ {
@ -191,7 +192,12 @@ static void zero_ccm_ram(void)
int main(void) int main(void)
{ {
bool cal_active;
float offset;
float sens;
int status;
bool sd_card_mounted = false; bool sd_card_mounted = false;
bool sd_old;
shellmatta_handle_t shell_handle; shellmatta_handle_t shell_handle;
int menu_wait_request; int menu_wait_request;
uint64_t quarter_sec_timestamp = 0ULL; uint64_t quarter_sec_timestamp = 0ULL;
@ -204,7 +210,25 @@ int main(void)
while (1) { while (1) {
if (systick_ticks_have_passed(quarter_sec_timestamp, 250)) { if (systick_ticks_have_passed(quarter_sec_timestamp, 250)) {
sd_old = sd_card_mounted;
sd_card_mounted = mount_sd_card_if_avail(sd_card_mounted); sd_card_mounted = mount_sd_card_if_avail(sd_card_mounted);
if (sd_old != sd_card_mounted) {
led_set(0, 1);
} else {
led_set(0, 0);
}
if (sd_card_mounted && !sd_old) {
adc_pt1000_get_resistance_calibration(NULL, NULL, &cal_active);
if (!cal_active) {
status = settings_load_calibration(&sens, &offset);
if (!status) {
adc_pt1000_set_resistance_calibration(offset, sens, true);
}
}
}
quarter_sec_timestamp = systick_get_global_tick(); quarter_sec_timestamp = systick_get_global_tick();
} }

View File

@ -161,7 +161,7 @@ int sd_card_settings_try_load_calibration(float *sens_deviation, float *offset)
{ {
char path[128]; char path[128];
int status; int status;
int ret = -2; int ret = 0;
if (!sens_deviation || !offset) if (!sens_deviation || !offset)
return -1000; return -1000;