|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|