fix missing external clock tick for first sync signal

pull/51/head
midilab 1 day ago
parent 1a81905346
commit 85421c87c5
  1. 7
      src/uClock.cpp

@ -320,11 +320,8 @@ void uClockClass::handleExternalClock()
} }
ext_interval_buffer[ext_interval_idx] = last_interval; ext_interval_buffer[ext_interval_idx] = last_interval;
if (ext_clock_tick == 1) { // calculate sync interval
ext_interval = last_interval;
} else {
ext_interval = (((uint32_t)ext_interval * (uint32_t)PLL_X) + (uint32_t)(256 - PLL_X) * (uint32_t)last_interval) >> 8; ext_interval = (((uint32_t)ext_interval * (uint32_t)PLL_X) + (uint32_t)(256 - PLL_X) * (uint32_t)last_interval) >> 8;
}
break; break;
case PAUSED: case PAUSED:
@ -333,6 +330,8 @@ void uClockClass::handleExternalClock()
case STARTING: case STARTING:
clock_state = SYNCING; clock_state = SYNCING;
ext_clock_us = micros(); ext_clock_us = micros();
// external clock tick me!
ext_clock_tick++;
break; break;
} }
} }

Loading…
Cancel
Save