You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AnHardt a6fbd4a5d8 Distribute GLCD screen updates in time
Currently we draw and send the screens for a graphical LCD all at once.
We draw in two or four parts but draw them directly behind each other.
For the tested status screen this takes 59-62ms in a single block.
During this time nothing else (except the interrupts) can be done.
When printing a sequence of very short moves the buffer drains - sometimes until it's empty.

This PR splits the screen update into parts.
Currently we have 10 time slots. During the first one the complete screen is drawn. (60,0,0,0,0,0,0,0,0,0,0)
Here i introduce pauses for doing other things. (30,30,0,0,0,0,0,0) or (15,15,15,15,0,0,0,0,0,0)
Drawing in consecutive time slots prevents from lagging too much. Even with a 4 stripe display all the drawing is done after 400ms.
Previous experiments with a even better distribution of the time slots like
(30,0,0,0,0,30,0,0,0,0) and (15,0,15,0,15,0,15,0,0,0) did not feel good when using the menu, because of too much lag.

Because of the previous PRs to speed up the display updates and especially reducing the difference between drawing 2 or 4 stripes,
it now makes sense for the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER to go from 2 to 4 stripes. This costs about 1-2ms per complete
screen update, but is payed back by having partial updates lasting only the half time and two additional brakes. Also ~256 byte of
framebuffer are saved in RAM.

13:45:59.213 : echo: #:17 >:13 s:30;   #:16 >:13 s:29;   S#:33 S>:26 S:59
13:46:00.213 : echo: #:16 >:14 s:30;   #:17 >:13 s:30;   S#:33 S>:27 S:60
13:46:01.215 : echo: #:17 >:13 s:30;   #:16 >:13 s:29;   S#:33 S>:26 S:59
13:46:02.215 : echo: #:16 >:13 s:29;   #:16 >:14 s:30;   S#:32 S>:27 S:59
13:46:03.214 : echo: #:17 >:13 s:30;   #:17 >:13 s:30;   S#:34 S>:26 S:60
13:46:04.214 : echo: #:16 >:13 s:29;   #:16 >:14 s:30;   S#:32 S>:27 S:59
13:46:05.212 : echo: #:16 >:14 s:30;   #:17 >:13 s:30;   S#:33 S>:27 S:60
13:46:06.212 : echo: #:17 >:13 s:30;   #:16 >:13 s:29;   S#:33 S>:26 S:59

03:30:36.779 : echo: #:8 >:7 s:15;   #:10 >:7 s:17;   #:8 >:6 s:14;   #:8 >:7 s:15;   S#:34 S>:27 S:61
03:30:37.778 : echo: #:8 >:6 s:14;   #:10 >:7 s:17;   #:9 >:7 s:16;   #:8 >:6 s:14;   S#:35 S>:26 S:61
03:30:38.778 : echo: #:8 >:6 s:14;   #:11 >:7 s:18;   #:8 >:6 s:14;   #:8 >:7 s:15;   S#:35 S>:26 S:61
03:30:39.777 : echo: #:8 >:6 s:14;   #:10 >:7 s:17;   #:8 >:8 s:16;   #:8 >:6 s:14;   S#:34 S>:27 S:61
03:30:40.780 : echo: #:8 >:6 s:14;   #:11 >:7 s:18;   #:8 >:6 s:14;   #:8 >:6 s:14;   S#:35 S>:25 S:60
03:30:41.780 : echo: #:9 >:6 s:15;   #:10 >:7 s:17;   #:8 >:6 s:14;   #:9 >:6 s:15;   S#:36 S>:25 S:61
03:30:42.779 : echo: #:8 >:6 s:14;   #:10 >:8 s:18;   #:8 >:6 s:14;   #:8 >:6 s:14;   S#:34 S>:26 S:60
03:30:43.778 : echo: #:9 >:6 s:15;   #:10 >:7 s:17;   #:8 >:7 s:15;   #:9 >:6 s:15;   S#:36 S>:26 S:62

#: draw a stripe
>: transfer a stripe
s: sum of of draw and transfer for one stripe
S#: sum of draws for a complete screen
S>: sum of transfers for a complete screen
S: time to draw and transfer a complete screen
8 years ago
..
example_configurations Merge pull request #5318 from Sebastianv650/Account_for_LCD_improvements 8 years ago
Conditionals.h Make Conditionals.h a catch-all for old configs 9 years ago
Conditionals_LCD.h Support for distinct E factors 8 years ago
Conditionals_post.h Merge pull request #5169 from thinkyhead/rc_core_inverted 8 years ago
Configuration.h Support for distinct E factors 8 years ago
Configuration_adv.h Merge pull request #5318 from Sebastianv650/Account_for_LCD_improvements 8 years ago
M100_Free_Mem_Chk.cpp Repair M100 9 years ago
Makefile reduce binary size of .hex 8 years ago
Marlin.h Make LOGICAL and RAW position macros ternary-compatible 8 years ago
Marlin.ino Add TMC2130 support 8 years ago
MarlinConfig.h Merge pull request #4419 from AnHardt/sd2pinmap 9 years ago
MarlinSerial.cpp Centralize click-handling in the LCD loop 8 years ago
MarlinSerial.h Optimize, reduce size of MarlinSerial 8 years ago
Marlin_main.cpp Merge pull request #5371 from thinkyhead/rc_extruders_can_differ 8 years ago
SanityCheck.h Support for an RGB LED using 3 pins 8 years ago
Sd2Card.cpp Use fastio for literal pins 8 years ago
Sd2Card.h repair-software-spi 9 years ago
SdBaseFile.cpp Clear dir_t size, not pointer size 8 years ago
SdBaseFile.h
SdFatConfig.h repair-software-spi 9 years ago
SdFatStructs.h
SdFatUtil.cpp
SdFatUtil.h Cleanup SdFatUtil.h 8 years ago
SdFile.cpp Converted all files on src to Unix file format 9 years ago
SdFile.h
SdInfo.h Converted all files on src to Unix file format 9 years ago
SdVolume.cpp Converted all files on src to Unix file format 9 years ago
SdVolume.h
Version.h Update distribution date and readme 9 years ago
blinkm.cpp
blinkm.h
boards.h Update boards.h 8 years ago
buzzer.h fixed warning: ISO C++ forbids compound-literals 8 years ago
cardreader.cpp Hide hidden files and folders 8 years ago
cardreader.h Fix bug in CardReader::stopSDPrint 8 years ago
circularqueue.h Patch up CircularQueue 9 years ago
configuration_store.cpp Support for distinct E factors 8 years ago
configuration_store.h Print error for M500 with disabled EEPROM 8 years ago
dac_mcp4728.cpp Fix DAC current code 8 years ago
dac_mcp4728.h Fix DAC current code 8 years ago
digipot_mcp4451.cpp Unify config in a single include without nested includes 9 years ago
dogm_bitmaps.h Updates u8glib's bmp2hex converter 9 years ago
dogm_font_data_6x9_marlin.h
dogm_font_data_HD44780_C.h
dogm_font_data_HD44780_J.h
dogm_font_data_HD44780_W.h
dogm_font_data_ISO10646_1.h
dogm_font_data_ISO10646_1_tr.h Change font decent to -1 for tt and gr 8 years ago
dogm_font_data_ISO10646_5_Cyrillic.h
dogm_font_data_ISO10646_CN.h
dogm_font_data_ISO10646_Greek.h Change font decent to -1 for tt and gr 8 years ago
dogm_font_data_ISO10646_Kana.h
dogm_font_data_Marlin_symbols.h
duration_t.h Better alignment of elapsed print time 8 years ago
endstop_interrupts.h More detailed static_assert messages 8 years ago
endstops.cpp Implement reversed CORE options 8 years ago
endstops.h const arguments to test_dual_z_endstops 8 years ago
enum.h Support for distinct E factors 8 years ago
fastio.h Merge pull request #4894 from thinkyhead/rc_mightyboard_rev_e 8 years ago
language.h adding ukrainian laguage support 8 years ago
language_an.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_bg.h Add placeholders for Bulgarian translation 8 years ago
language_ca.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_cn.h Follow up the PR #5167 (Add Turkish Language), etc 8 years ago
language_cz.h Update Czech 8 years ago
language_da.h Re-follow the PR #4634 (Set language display charset in language.h) 8 years ago
language_de.h Add missing translations to lang-de 8 years ago
language_el-gr.h Activate font and mapper for el-gr 8 years ago
language_el.h Patch up some language formatting 8 years ago
language_en.h Added Menu entry for Case light 8 years ago
language_es.h Follow up the PR #5167 (Add Turkish Language), etc 8 years ago
language_eu.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_fi.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_fr.h Patch up some language formatting 8 years ago
language_gl.h Galician language update. 8 years ago
language_hr.h Update Croatian to include missing strings 8 years ago
language_it.h Added missing translations 8 years ago
language_kana.h Update Japanese translation 8 years ago
language_kana_utf8.h Update Japanese translation 8 years ago
language_nl.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_pl.h Add placeholders for Polish translatable strings 8 years ago
language_pt-br.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_pt-br_utf8.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_pt.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_pt_utf8.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_ru.h max_jerk array, DEFAULT_XYJERK => DEFAULT_[XY]JERK 8 years ago
language_test.h Keep SIMULATE_ROMFONT only language.h 8 years ago
language_tr.h Added Human Readable Comments 8 years ago
language_tr_utf8.h Add UTF8 Turkish Translation 8 years ago
language_uk.h adding ukrainian laguage support 8 years ago
macros.h Limit preheat parameters based on all nozzles 8 years ago
mesh_bed_leveling.cpp Add a ZERO macro to clear arrays 8 years ago
mesh_bed_leveling.h Pass the fade factor to mbl.get_z 8 years ago
nozzle.h Nozzle::clean() no longer requires HAS_BED_PROBE 9 years ago
pins.h Update pins.h 8 years ago
pinsDebug.h Save PROGMEM with string changes 8 years ago
pins_3DRAG.h Follow-up the PR #4955, etc 8 years ago
pins_5DPRINT.h Follow-up the PR #4955, etc 8 years ago
pins_99.h Follow-up the PR #4955, etc 8 years ago
pins_A4JP.h No FAN0_PIN 8 years ago
pins_AZTEEG_X1.h Add "About Printer" information menu. 9 years ago
pins_AZTEEG_X3.h Follow-up the PR #5087 (Fixed SERVO pins on Azteeg X3), etc 8 years ago
pins_AZTEEG_X3_PRO.h Predefine auto fan pins in some pins files 8 years ago
pins_BAM_DICE_DUE.h Follow-up the PR #4955, etc 8 years ago
pins_BQ_ZUM_MEGA_3D.h Predefine auto fan pins in some pins files 8 years ago
pins_BRAINWAVE.h Follow-up the PR #4955, etc 8 years ago
pins_BRAINWAVE_PRO.h Follow-up the PR #4955, etc 8 years ago
pins_CHEAPTRONIC.h Follow-up the PR #4955, etc 8 years ago
pins_CNCONTROLS_11.h Predefine auto fan pins in some pins files 8 years ago
pins_CNCONTROLS_12.h Predefine auto fan pins in some pins files 8 years ago
pins_ELEFU_3.h Follow-up the PR #4955, etc 8 years ago
pins_FELIX2.h Follow-up the PR #4955, etc 8 years ago
pins_GEN3_MONOLITHIC.h Follow-up the PR #4955, etc 8 years ago
pins_GEN3_PLUS.h Follow-up the PR #4955, etc 8 years ago
pins_GEN6.h Follow-up the PR #4955, etc 8 years ago
pins_GEN6_DELUXE.h Add "About Printer" information menu. 9 years ago
pins_GEN7_12.h Label analog pins in a similar way 8 years ago
pins_GEN7_13.h Add "About Printer" information menu. 9 years ago
pins_GEN7_14.h Follow-up the PR #4955, etc 8 years ago
pins_GEN7_CUSTOM.h Follow-up the PR #4955, etc 8 years ago
pins_K8200.h Add "About Printer" information menu. 9 years ago
pins_K8400.h Follow-up the PR #4955, etc 8 years ago
pins_LEAPFROG.h Follow-up the PR #4955, etc 8 years ago
pins_MEGACONTROLLER.h Follow-up the PR #4955, etc 8 years ago
pins_MEGATRONICS.h Follow-up the PR #4955, etc 8 years ago
pins_MEGATRONICS_2.h Follow-up the PR #4955, etc 8 years ago
pins_MEGATRONICS_3.h Update pins_MEGATRONICS_3.h 8 years ago
pins_MELZI.h Add "About Printer" information menu. 9 years ago
pins_MELZI_MAKR3D.h Add "About Printer" information menu. 9 years ago
pins_MIGHTYBOARD_REVE.h Developer note in pins_MIGHTYBOARD_REVE.h 8 years ago
pins_MINIRAMBO.h Follow-up the PR #4955, etc 8 years ago
pins_MINITRONICS.h Follow-up the PR #4955, etc 8 years ago
pins_MKS_13.h Follow-up the PR #4955, etc 8 years ago
pins_MKS_BASE.h Follow-up the PR #4955, etc 8 years ago
pins_OMCA.h Follow-up the PR #4955, etc 8 years ago
pins_OMCA_A.h Follow-up the PR #4955, etc 8 years ago
pins_PRINTRBOARD.h Follow-up the PR #4955, etc 8 years ago
pins_PRINTRBOARD_REVF.h Follow-up the PR #4955, etc 8 years ago
pins_RAMBO.h Follow-up the PR #4955, etc 8 years ago
pins_RAMPS.h Add TMC2130 support 8 years ago
pins_RAMPS_13.h pins_RAMPS_14.h => pins_RAMPS.h 9 years ago
pins_RAMPS_OLD.h Follow-up the PR #4955, etc 8 years ago
pins_RIGIDBOARD.h Follow-up the PR #4955, etc 8 years ago
pins_RIGIDBOARD_V2.h Follow-up the PR #4955, etc 8 years ago
pins_RUMBA.h Follow-up the PR #4955, etc 8 years ago
pins_SAINSMART_2IN1.h Follow-up the PR #4955, etc 8 years ago
pins_SANGUINOLOLU_11.h Follow-up the PR #4955, etc 8 years ago
pins_SANGUINOLOLU_12.h Add "About Printer" information menu. 9 years ago
pins_SAV_MKI.h Follow-up the PR #4955, etc 8 years ago
pins_SETHI.h Follow-up the PR #4955, etc 8 years ago
pins_STB_11.h Add "About Printer" information menu. 9 years ago
pins_TEENSY2.h Follow-up the PR #4955, etc 8 years ago
pins_TEENSYLU.h Follow-up the PR #4955, etc 8 years ago
pins_ULTIMAIN_2.h Follow-up the PR #4955, etc 8 years ago
pins_ULTIMAKER.h Follow-up the PR #4955, etc 8 years ago
pins_ULTIMAKER_OLD.h Follow-up the PR #4955, etc 8 years ago
planner.cpp Support for distinct E factors 8 years ago
planner.h Support for distinct E factors 8 years ago
planner_bezier.cpp Improve planner kinematics, fix delta ABL 8 years ago
planner_bezier.h Append units to feedrate variables 9 years ago
platformio.ini Move platformio directories out of source tree 8 years ago
point_t.h Adds missing documentation to the point_t structure 9 years ago
printcounter.cpp Renamed timestamp_t to duration_t 9 years ago
printcounter.h Adds filamentUsed and longestPrint stats to PrintCounter 9 years ago
qr_solve.cpp Enable ABL by type, support bilinear on cartesian 8 years ago
qr_solve.h Enable ABL by type, support bilinear on cartesian 8 years ago
servo.cpp Unify config in a single include without nested includes 9 years ago
servo.h SERVO_DEACTIVATION_DELAY => SERVO_DELAY 9 years ago
speed_lookuptable.h
stepper.cpp Merge pull request #5259 from Sebastianv650/Allow_UART-ISR_inside_Stepper 8 years ago
stepper.h Minor stepper cleanup 8 years ago
stepper_dac.cpp DAC patches 8 years ago
stepper_dac.h Cleanup of code style 8 years ago
stepper_indirection.cpp Reduce all stepper_indirection init code with macros 8 years ago
stepper_indirection.h Add TMC2130 support 8 years ago
stopwatch.cpp Updates Stopwatch class to use internal state enum 9 years ago
stopwatch.h Updates Stopwatch class to use internal state enum 9 years ago
temperature.cpp Enable ISRs inside temperature ISR 8 years ago
temperature.h Implement reversed CORE options 8 years ago
thermistornames.h Dyze High Temp Thermistor Support 9 years ago
thermistortables.h Dyze High Temp Thermistor Support 9 years ago
twibus.cpp Allow send to i2c address 0 (broadcast) 8 years ago
twibus.h M155=>M260, M156=>M261 8 years ago
types.h Adds types.h 9 years ago
ultralcd.cpp Distribute GLCD screen updates in time 8 years ago
ultralcd.h Apply const to LCD arguments and locals 8 years ago
ultralcd_impl_DOGM.h Distribute GLCD screen updates in time 8 years ago
ultralcd_impl_HD44780.h Better alignment of elapsed print time 8 years ago
ultralcd_st7920_u8glib_rrd.h Distribute GLCD screen updates in time 8 years ago
utf_mapper.h Adjust spacing in utf_mapper.h 8 years ago
utility.cpp Implement as optional feature LCD_DECIMAL_SMALL_XY 8 years ago
utility.h Implement as optional feature LCD_DECIMAL_SMALL_XY 8 years ago
vector_3.cpp Enable ABL by type, support bilinear on cartesian 8 years ago
vector_3.h Enable ABL by type, support bilinear on cartesian 8 years ago
watchdog.cpp
watchdog.h