/* To start a timer, you write to FRCI_LOAD_ADDRESS, and that starts the counting down. When it reaches zero, the interrupt fires  */
static void ICACHE_RAM_ATTR set_timer(int delay, const char *caller)
/* To start a timer, you write to FRCI_LOAD_ADDRESS, and that starts the counting down. When it reaches zero, the interrupt fires  */
static void ICACHE_RAM_ATTR set_timer(int delay, const char *caller)
{
    delay = 1;
  }
  int32_t time_left = (RTC_REG_READ(FRC1_COUNT_ADDRESS)) & ((1 << 23) - 1);
  RTC_REG_WRITE(FRC1_LOAD_ADDRESS, delay);
  if (time_left > last_timer_load) {
    time_left -= 1 << 23;
  }
  NODE_DBG("%s(%x): time_next=%d, left=%d (load=%d), delay=%d  => %d\n", caller, active->owner, time_next_expiry, time_left, last_timer_load, delay, time_next_expiry - time_left + delay);
  time_next_expiry = time_next_expiry - time_left + delay;
  last_timer_load = delay;
  timer_running = 1;
}