Merge pull request #4184 from gudnimg/feedrate-fix-3_13
Fix regression where time remaining can overflow on status screen
This commit is contained in:
commit
39c3e8a530
|
|
@ -446,9 +446,9 @@ void lcdui_print_time(void)
|
|||
//if remaining print time estimation is available print it else print elapsed time
|
||||
int chars = 0;
|
||||
if (printer_active()) {
|
||||
uint16_t print_t = PRINT_TIME_REMAINING_INIT;
|
||||
uint16_t print_tr = PRINT_TIME_REMAINING_INIT;
|
||||
uint16_t print_tc = PRINT_TIME_REMAINING_INIT;
|
||||
uint16_t print_t = PRINT_TIME_REMAINING_INIT; // unit: minutes
|
||||
uint16_t print_tr = PRINT_TIME_REMAINING_INIT; // unit: minutes
|
||||
uint16_t print_tc = PRINT_TIME_REMAINING_INIT; // unit: minutes
|
||||
char suff = ' ';
|
||||
char suff_doubt = ' ';
|
||||
|
||||
|
|
@ -491,7 +491,8 @@ void lcdui_print_time(void)
|
|||
|
||||
if (feedmultiply != 100 && (print_t == print_tr || print_t == print_tc)) {
|
||||
suff_doubt = '?';
|
||||
print_t = (100 * print_t) / feedmultiply;
|
||||
// (print_t * 100) overflows uint16_t at 10.9 hours, uint32_t is required
|
||||
print_t = (uint16_t)((100UL * (uint32_t)print_t) / feedmultiply);
|
||||
}
|
||||
|
||||
if (print_t < 6000) //time<100h
|
||||
|
|
|
|||
Loading…
Reference in New Issue