Prusa-Firmware/Firmware
Yuri D'Elia 47db75d5fd Fix overflow and infloop with LA15 and low step rates
When calculating the advance tick interval, be sure to check for integer
overflow. Very low step rates can result in values exceeding uint16_t
causing premature LA tick delivery.

An overflow resulting in zero would also block in an infinite loop
within advance_spread().

Even though such rates are worthless in terms of compensation and often
result in 0 extra ticks as well, do not disable LA for the block (as
doing so would reset the count for short segments) and do not check for
zero in multiple paces either.

Saturate the interval instead, delaying any further tick to the next
block.
2020-02-02 22:49:39 +01:00
..
variants Rewrite uvlo handling for accurate Z re/positioning 2020-01-26 17:46:50 +01:00
adc.c IR sensor gen. II 2019-09-16 00:43:37 +02:00
adc.h Fix ADC index overflow 2018-07-17 17:55:04 +02:00
AutoDeplete.cpp Comment. 2019-01-04 19:56:15 +01:00
AutoDeplete.h Add filament auto deplete engine for multi-material prints with MMUv2. 2019-01-03 22:58:25 +01:00
backlight.cpp General fixes and improvements to code 2019-10-31 19:07:20 +02:00
backlight.h General fixes and improvements to code 2019-10-31 19:07:20 +02:00
BlinkM.cpp Build 109 2017-11-16 22:03:36 +01:00
BlinkM.h Build 109 2017-11-16 22:03:36 +01:00
boards.h MK3 configuration files, renamed EINY to EINSY 2018-02-01 17:10:41 +01:00
bootapp.c New lang, arduino 1.8.5 - boot_app debug output 2018-10-18 16:20:14 +02:00
bootapp.h New lang, arduino 1.8.5 - boot_app debug output 2018-10-18 16:20:14 +02:00
cardreader.cpp Fix kill messages 2019-11-29 22:49:22 +02:00
cardreader.h Fix pause/resume when using M25/M601 2019-11-28 17:37:58 +01:00
cmdqueue.cpp Fix kill messages 2019-11-29 22:49:22 +02:00
cmdqueue.h Fix repeated power panic restarted print from beginning or jumped at most 65536 B back in file printed from SD card. 2019-08-23 19:30:20 +02:00
config.h Merge branch 'MK3' into PFW-943 2019-09-16 15:29:28 +02:00
Configuration_adv.h Add a Linear Advance 1.0->1.5 compatibility layer 2019-12-21 23:22:35 +01:00
Configuration.cpp some improvements 2019-07-10 16:29:40 +02:00
Configuration.h Version changed (3.9.0 build 3175) 2020-01-16 16:03:34 +01:00
ConfigurationStore.cpp Fixup prefix echomagic for the LA config report 2019-05-24 17:08:32 +02:00
ConfigurationStore.h Adding the microstepping resolution for all axis to the eprom config which is persisted during M500 for Mk3 and Mk3S 2019-03-19 21:39:59 +00:00
conv2str.cpp LCD menu optimalization - conversion functions - source separation 2018-07-16 17:23:35 +02:00
conv2str.h LCD menu optimalization - conversion functions - source separation 2018-07-16 17:23:35 +02:00
Dcodes.cpp And another one 2020-01-31 15:40:07 +01:00
Dcodes.h Merge branch 'MK25' into MK3 2018-03-13 20:43:19 +01:00
doxyfile Updated doxygen docs to work better with confluence. 2019-07-19 13:51:55 +02:00
eeprom.cpp EEPROM_BABYSTEP_Z using removal 2019-10-01 16:57:37 +02:00
eeprom.h Save/restore hotend temperatures above 255C in PowerPanic 2020-01-27 14:59:18 +01:00
fastio.h WRITE_NC macro for non-critical (non-synchronized) access to 2018-01-12 20:15:59 +01:00
Firmware.ino LCD menu optimalization - LiquidCrystal_Prusa removed 2018-07-16 23:23:15 +02:00
first_lay_cal.cpp Rename lay1cal_preheat() to lay1cal_wait_preheat(). 2019-09-12 00:19:20 +02:00
first_lay_cal.h Rename lay1cal_preheat() to lay1cal_wait_preheat(). 2019-09-12 00:19:20 +02:00
fsensor.cpp Merge pull request #2394 from wavexx/fsensor_no_recursion 2020-01-30 14:18:07 +01:00
fsensor.h Merge remote-tracking branch 'upstream/MK3' into MK3_LA15 2019-12-04 17:27:23 +01:00
heatbed_pwm.cpp Documentation 2020-01-29 23:07:24 +02:00
io_atmega2560.h "disable_z()" for Delta PSU II 2019-03-25 23:28:25 +01:00
la10compat.cpp Improve K error checking, allow to manually reset the version 2019-12-30 14:31:39 +01:00
la10compat.h Add a Linear Advance 1.0->1.5 compatibility layer 2019-12-21 23:22:35 +01:00
language.c Fix language related warnings in LANG_MODE 0 2019-07-29 15:55:42 +03:00
language.h New lang - fixed french langcode and comparsion in lang-clean script 2018-10-25 18:16:36 +02:00
lcd.cpp fix the knob long-press causing hang in modal dialogs 2019-10-01 17:13:36 +02:00
lcd.h Merge branch 'MK3' into MK3_Translations 2019-09-12 16:28:36 +03:00
le.sh make all shell scripts executable 2018-12-10 07:09:03 -07:00
Marlin_main.cpp Merge pull request #2436 from leptun/MK3_PSU_DELTA_cleanup 2020-01-31 09:08:14 +01:00
Marlin.h Really poweroff Z motors when PSU_Delta is defined 2020-01-27 18:50:17 +01:00
MarlinSerial.cpp Optimized LiquidCrystal class 2018-06-08 14:35:47 +02:00
MarlinSerial.h More than 7.5KB saved by slight refactoring of printing to serial line 2019-07-12 10:10:56 +02:00
menu.cpp Merge remote-tracking branch 'upstream/MK3' into MK3_LA15 2019-12-04 17:27:23 +01:00
menu.h Fix Live K, allow "Advance K" to be translated 2019-12-05 15:18:24 +01:00
mesh_bed_calibration.cpp Revert "Mesh bed leveling testing" 2020-01-29 23:07:53 +02:00
mesh_bed_calibration.h Mesh by 3d-gussner, fixed difference between mbl points coordinates and coordinates used in planner for corrections, mbl settings menu update 2019-03-14 01:52:44 +01:00
mesh_bed_leveling.cpp 7x7 points mesh bed leveling 2019-02-14 10:57:58 +02:00
mesh_bed_leveling.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
messages.c Fix build with LA_LIVE_K 2020-02-02 18:02:37 +01:00
messages.h Display "POWER PANIC DETECTED" when possible 2020-01-29 21:08:56 +01:00
mmu.cpp Merge pull request #2393 from wavexx/sync_before_resume 2020-01-15 12:49:56 +01:00
mmu.h Show FINDA state as N/A if last received response is older than 1s. 2019-10-31 17:45:22 +01:00
motion_control.cpp 3.0.6 sync 2016-08-11 10:42:53 +02:00
motion_control.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
optiboot_w25x20cl.cpp Fix optiboot erase function after address 0xFFFF 2019-12-08 08:43:43 +02:00
optiboot_w25x20cl.h Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
pat9125.c Fix compiler warning arduino-1.6.9/hardware/tools/avr/avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp] 2018-07-23 18:12:08 +02:00
pat9125.h PAT9125 optimalization (rewrited to C, 8bit sampling) 2018-07-12 18:11:07 +02:00
pins_Einsy_1_0.h Merge branch 'MK3' into MK3-PFW-1024 2019-11-29 13:07:45 +02:00
pins_Rambo_1_0.h MK2.5 IR_SENSOR_PIN modified 2019-02-11 14:32:21 +01:00
pins_Rambo_1_3.h debug gcodes (fans, bed analysis) moved to Dcodes, HOST_KEEPALIVE_FEATURE simplified 2019-03-06 19:56:48 +01:00
pins.h Fix compiler warnings macro redefined. 2019-03-05 15:56:20 +01:00
planner.cpp Fix overflow and infloop with LA15 and low step rates 2020-02-02 22:49:39 +01:00
planner.h Fix incorrect usage of plan_set_e_position() in G92 E* 2020-01-14 20:24:14 +01:00
printers.h Remove commented out defines. 2019-07-10 17:40:33 +02:00
qr_solve.cpp 3.0.6 sync 2016-08-11 10:42:53 +02:00
qr_solve.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
rbuf.c T-codes for MMU_V2: initial version 2018-07-09 13:57:36 +02:00
rbuf.h T-codes for MMU_V2: initial version 2018-07-09 13:57:36 +02:00
Sd2Card.cpp reinitialize the timestamp to ensure enough time to receive response for 0xFF sent. 2019-08-11 17:57:41 -04:00
Sd2Card.h Fix for Toshiba FlashAir (or other) SD card initialization - add clock cycles between sending CMD0 and CMD8. Redone for MK3 branch) 2019-08-08 15:45:59 -04:00
Sd2PinMap.h 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
SdBaseFile.cpp Support for more special characters allowed in file names (^ + = [ ] ; 2019-08-27 13:47:58 +02:00
SdBaseFile.h 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
SdFatConfig.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
SdFatStructs.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
SdFatUtil.cpp Fix compiler warning: sketch/SdFatUtil.cpp:49:7: warning: unused variable 'i' [-Wunused-variable] 2018-07-25 15:19:10 +02:00
SdFatUtil.h 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
SdFile.cpp 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
SdFile.h Optimized LiquidCrystal class 2018-06-08 14:35:47 +02:00
SdInfo.h 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
SdVolume.cpp 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00
SdVolume.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
Servo.cpp 3.0.6 sync 2016-08-11 10:42:53 +02:00
Servo.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
sm4.c Merge remote-tracking branch 'prusa3d/MK3_dev' into simplify_EEPROM_M500 2018-10-08 15:58:49 +02:00
sm4.h New XYZ calibration with image processing 2018-03-13 12:55:35 +01:00
sound.cpp General fixes and improvements to code 2019-10-31 19:07:20 +02:00
sound.h Toggle Sound 2019-08-31 16:56:14 +03:00
speed_lookuptable.cpp Move speed lookup defs into a separate source 2019-05-24 17:08:32 +02:00
speed_lookuptable.h Move calc_timer into speed_lookup_table for planner reuse 2019-05-24 17:08:32 +02:00
spi.c New SPI (do not use Arduino SPI class) 2018-03-29 17:42:41 +02:00
spi.h New ML support - W25X20CL external spi flash support 2018-06-08 00:20:28 +02:00
static_assert.h static_assert - portable solution compatible with C++98 2018-09-27 19:59:29 +02:00
stepper.cpp Fix incorrect usage of plan_set_e_position() in G92 E* 2020-01-14 20:24:14 +01:00
stepper.h Remove clear_current_adv_vars() 2019-06-05 20:25:19 +02:00
stk500.h Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
swi2c.c Fix compiler warning arduino-1.6.9/hardware/tools/avr/avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>." [-Wcpp] 2018-07-23 13:47:15 +02:00
swi2c.h SWI2C for PAT9125 simplified/optimized 2018-07-12 17:55:38 +02:00
swspi.cpp PAT9125 I2C, hardware SG homing 2017-08-17 15:23:34 +02:00
swspi.h PAT9125 I2C, hardware SG homing 2017-08-17 15:23:34 +02:00
system_timer.h heatbed audible noise suppression using short fast PWM pulses with 2019-07-08 16:42:21 +02:00
temperature.cpp Show correct fixed message 2020-01-30 17:24:32 +02:00
temperature.h Merge branch 'MK3' into MK3_BED_LEVELING_PWM 2020-01-07 07:58:32 +02:00
thermistortables.h New ML support - menu tunning, startup 2018-06-10 16:04:32 +02:00
timer02.c Improve performance of bed PWM automaton - proof of concept 2019-08-14 17:53:08 +02:00
timer02.h heatbed audible noise suppression using short fast PWM pulses with 2019-07-08 16:42:21 +02:00
Timer.cpp Fix Timer_test broken by conditional translation for SYSTEM_TIMER_2. 2019-01-28 19:29:31 +01:00
Timer.h Store timer period in TimerRemaining. 2018-06-11 23:41:36 +02:00
TimerRemaining.h Fix Timer_test broken by conditional translation for SYSTEM_TIMER_2. 2019-01-28 19:29:31 +01:00
tmc2130.cpp Merge pull request #2342 from vintagepc/2306-hard-reset-homing-fails 2019-12-15 10:51:52 +01:00
tmc2130.h Fix compiler warnings 2019-07-16 17:31:56 +02:00
uart2.c Merge remote-tracking branch 'prusa3d/MK3_dev' into simplify_EEPROM_M500 2018-10-08 15:58:49 +02:00
uart2.h MMU - communication, check after start, code cleaning 2018-08-07 20:37:59 +02:00
ultralcd.cpp selfTest workflow optimalization 2020-01-22 04:45:13 +01:00
ultralcd.h Merge pull request #2058 from leptun/MK3_fix_warnings 2019-12-15 09:29:27 +01:00
uni_avr_rpi.h Revert "Revert "Save 80B of flash and 8B of RAM and fix compiler warning:"" 2018-07-23 13:35:38 +02:00
util.cpp default nozzle diameter for farm mode 2019-09-23 17:13:33 +02:00
util.h default nozzle diameter for farm mode 2019-09-23 17:13:33 +02:00
vector_3.cpp 3.0.6 sync 2016-08-11 10:42:53 +02:00
vector_3.h 3.0.6 sync 2016-08-11 10:42:53 +02:00
w25x20cl.c Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
w25x20cl.h Added support for a secondary boot loader, based on the OptiBoot project, 2018-06-14 15:13:21 +02:00
xyzcal.cpp Conditional translation for SYSTEM_TIMER_2 because we want to have posibility to switch between old/new implementation. 2019-01-27 22:48:51 +01:00
xyzcal.h XYZ calibration - accuracy improvement 2018-03-27 17:27:41 +02:00