From 6c58939a6f330a76886df564a88456b6c4327ab3 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Thu, 2 Jul 2020 09:37:45 +0300 Subject: [PATCH] Fix my mistake on measure time --- sa_core.c | 5 +++-- si4432.c | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sa_core.c b/sa_core.c index 70d3c94..c42fa55 100644 --- a/sa_core.c +++ b/sa_core.c @@ -1625,7 +1625,8 @@ again: // Waiting for a trigger jumps back to here } } - setting.measure_sweep_time_us = chVTGetSystemTimeX(); // start measure sweep time + setting.measure_sweep_time_us = 0; + systime_t measure = chVTGetSystemTimeX(); // start measure sweep time sweep_again: // stay in sweep loop when output mode and modulation on. @@ -1765,7 +1766,7 @@ sweep_again: // stay in sweep loop when output mo // ---------------------- process measured actual sweep time ----------------- // For CW mode value calculated in SI4432_Fill if (setting.measure_sweep_time_us == 0) - setting.measure_sweep_time_us = (chVTGetSystemTimeX() - setting.measure_sweep_time_us) * 100; + setting.measure_sweep_time_us = (chVTGetSystemTimeX() - measure) * 100; // Update actual time on change on status panel uint32_t delta = abs((int)(setting.actual_sweep_time_us - setting.measure_sweep_time_us)); diff --git a/si4432.c b/si4432.c index 9994d6a..9186add 100644 --- a/si4432.c +++ b/si4432.c @@ -410,6 +410,7 @@ void SI4432_Fill(int s, int start) #endif uint32_t t = setting.additional_step_delay_us; systime_t measure = chVTGetSystemTimeX(); +// __disable_irq(); #if 0 SPI2_CLK_LOW; int i = start; @@ -425,6 +426,7 @@ void SI4432_Fill(int s, int start) #else shiftInBuf(sel, SI4432_REG_RSSI, (uint8_t *)&age[start], sweep_points - start, t); #endif +// __enable_irq(); setting.measure_sweep_time_us+= (chVTGetSystemTimeX() - measure)*100; buf_index = start; // Is used to skip 1st entry during level triggering buf_read = true;