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:
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user