Optimize handling of block_buffer_runtime()

millis_t is long - divisions take for ever.

Return a kind of millisecond instead of microsecond -
divided by 1024 instead of 1000 for speed. (2.4% error)

That does not matter because block_buffer_runtime is
already a too short estimation.
Shrink the return-type.
This commit is contained in:
AnHardt
2016-12-15 12:50:22 +01:00
parent 7ca4f16a5c
commit 292eb365c6
2 changed files with 12 additions and 5 deletions

View File

@ -395,10 +395,16 @@ class Planner {
#if ENABLED(ULTRA_LCD)
static millis_t block_buffer_runtime() {
static uint16_t block_buffer_runtime() {
CRITICAL_SECTION_START
millis_t bbru = block_buffer_runtime_us;
CRITICAL_SECTION_END
// To translate µs to ms a division by 1000 would be required.
// We introduce 2.4% error here by dividing by 1024.
// Doesn't matter because block_buffer_runtime_us is already too small an estimation.
bbru >>= 10;
// limit to about a minute.
NOMORE(bbru, 0xfffful);
return bbru;
}