#include "clock.h"
#include "modbus.h"
-#define ECHO_TIMEOUT (CLOCK_HZ/20) // 50 ms
-#define MEASUREMENT_WAIT (4*ECHO_TIMEOUT)
+#define ECHO_TIMEOUT (CLOCK_HZ/10) // 100 ms
+#define MEASUREMENT_WAIT (2*ECHO_TIMEOUT)
#define MEASUREMENT_SHIFT 2 // running avg (1 << M_SHIFT)
#define N_TRIGGERS 3
#define distances (hold_regs+MB_N_HOLD_REGS_EEPROM+1)
#define free_bitmap (hold_regs[MB_N_HOLD_REGS_EEPROM+13])
#define err_bitmap (hold_regs[MB_N_HOLD_REGS_EEPROM+14])
+#define max_distances (hold_regs+MB_N_HOLD_REGS_EEPROM+21)
static void pull_trigger(uint8_t trig)
{
new_d = now - starttimes[i];
old_d = distances[idx];
+ if (new_d > max_distances[idx])
+ max_distances[idx] = new_d;
+
if (old_d == 0
|| old_d == -1) {
distances[idx] = new_d;