Commit Graph

71 Commits

Author SHA1 Message Date
Yuri D'Elia
aa721cafd9 lcd_print_pad: do not overflow len when truncating the string 2022-09-26 12:18:47 +02:00
Yuri D'Elia
b710ca0e58 Improve warning behavior during thermal anomaly
The current code forces any warning to return the user to the status
screen in order to show the message.

Thermal anomaly warnings can repeat at very short intervals, making menu
navigation (to pause/tune the print) impossible.

We now check if the message to be displayed is the same and only force a
kickback for new messages.

This partially reverts https://github.com/prusa3d/Prusa-Firmware/pull/3600
since we need the string to be null terminated for ease of comparison.

We pad the status line at display time instead using the new
lcd_print_pad() function which achieves the same effect.
2022-09-23 14:55:03 +02:00
Guðni Már Gilbert
f6fd91a235 Optimise lcd_status_screen
Saves 20 bytes of flash
2022-07-27 11:14:18 +00:00
Alex Voinea
3c579bf738 Fix fullscreen message lcd_update handling 2022-07-15 15:45:34 +03:00
Alex Voinea
42b91a83cd Merge branch 'MK3' into MK3_3.12_Optimizations 2022-02-10 10:36:31 +01:00
Alex Voinea
1342db3532
Merge pull request #3257 from gudnimg/lcd-optimisation-gudni
Remove redundant operations on LCD CGRAM
2022-02-09 08:09:48 +01:00
Guðni Már Gilbert
800f44509d Change row_offsets[] to uint8_t
Saves 10 bytes of flash, and 4 bytes of SRAM
2022-01-30 11:39:24 +00:00
Guðni Már Gilbert
cf8a16baa1 Remove one call to lcd_timeoutToStatus.start
Saves 8 bytes of Flash memory

This call is redundant and when moving between menus
it gets called multiple times which results in waste
of clock cycles.

lcd_timeoutToStatus.start() is called from menu_lcd_lcdupdate_func()
which is enough.
2021-08-21 14:34:02 +00:00
Guðni Már Gilbert
b716c208d7 Various optimisation to change int to uint8_t
This commit saves 174 bytes of flash memory
2021-08-03 22:42:01 +00:00
Guðni Már Gilbert
da2c802440 Add two defines and use LCD_STR_DEGREE with consistency
This saves 12 bytes of flash and 2 bytes of SRAM
2021-08-01 11:10:03 +00:00
Guðni Már Gilbert
6afc87d3c8 Reduce unnecessary LCD CGRAM writes 2021-07-30 23:53:57 +00:00
Yuri D'Elia
72b8f0d1e6 Add some warnings in lcd_buttons_update 2021-06-19 13:46:10 +02:00
Yuri D'Elia
06d91ddcee Handle Long-Press in the main loop
The longpress function is currently called within the temperature ISR,
which is bogus. Calling the longpress function at the wrong moment
can corrupt the menu buffers.

Move the call to the main loop by changing the logic slightly:

- still sample the lcd buttons inside the temperature ISR, which keeps
  scrollong/pressing responsive, but...
- set a flag to indicate that longpress has been triggered instead of
  calling the function directly
- call the function on the next manage_inactivity run

Combined with #3180 this removes _most_ unsafe operations out of the ISR
which can happen during a normal run (max/mintemp warnings are still an
exception).
2021-06-17 20:07:01 +02:00
Alex Voinea
4c977cc335 Merge branch 'MK3' into MK3_NEW_SD_COMPILATION 2021-02-03 18:28:18 +02:00
D.R.racer
783e4bbaf9 Add lcd_putc_at (code down >150B), refactor lcd_selftest_screen_step
(RAM down 10B)
2021-01-25 14:58:57 +01:00
Alex Voinea
f35e553373
Code cleanup 2020-03-04 20:33:43 +02:00
Alex Voinea
7028583e9b
Merge branch 'MK3_ShellSort' into MK3_NEW_SD_COMPILATION 2020-01-08 16:27:31 +02:00
Alex Voinea
960f4a88ed
Status bar, lcd optimization, compile warning fix 2019-11-26 13:36:28 +02:00
Alex Voinea
b3a587f5a4 SD first attempt. Broken 2019-11-20 20:25:51 +02:00
DRracer
f3c3526aa5 fix the knob long-press causing hang in modal dialogs 2019-10-01 17:13:36 +02:00
leptun
2480bd90fc Revert lcd_putchar to type int and retrun 0
Discussion: https://github.com/prusa3d/Prusa-Firmware/pull/2008#issuecomment-514500738
2019-09-09 13:59:20 +03:00
leptun
3ddb853bbd Fix shifted languages. Use \n and \x0a 2019-07-26 18:53:08 +03:00
leptun
121e60655a Fix lcd not initing after WDT reset 2019-07-18 11:50:18 +03:00
leptun
d8ecb2d0c9 Fix status screen 2019-07-16 21:11:27 +03:00
Marek Bel
0c660a6fb1 Revert "Fix sketch/lcd.cpp:196:1: warning: no return statement in function returning non-void [-Wreturn-type]."
This reverts commit a54fd29fa4.
2019-07-16 21:10:11 +03:00
Marek Bel
a54fd29fa4 Fix sketch/lcd.cpp:196:1: warning: no return statement in function returning non-void [-Wreturn-type]. 2019-07-16 20:02:01 +03:00
Marek Bel
fecccf50e5 Remove duplicate prototypes from ultralcd.h. Make functions unreferenced outside lcd.cpp static. Disable unused functions by preprocessor to suppress warnings. 2019-07-16 20:01:49 +03:00
leptun
8b1c687629 Lcd optimization - 1K of flash saved 2019-07-15 20:32:58 +03:00
NotaRobotexe
bb980e2fca sound edit, delete mute mode, add blind mode 2019-06-10 15:03:52 +02:00
Robert Pelnar
eea755496b Conditional translation for SYSTEM_TIMER_2 because we want to have posibility to switch between old/new implementation.
Timing functions (millis, micros and delay) replaced in whole source, defined in Marlin.h.
This commit enables original implementation (SYSTEM_TIMER_2 undefined)
Verified with passed complete wizard process.
2019-01-27 22:48:51 +01:00
Marek Bel
b4d4bfa667 Do not declare extern class in .cpp file, include appropriate header. 2018-11-06 20:54:53 +01:00
Marek Bel
95b0506284 Make lcd_long_press_active private. 2018-11-06 20:48:28 +01:00
Marek Bel
676434111e Disable long press handler in modal dialogs (LCD update disabled). 2018-11-06 20:43:19 +01:00
Marek Bel
05d3b7032d Update documentation. 2018-09-18 17:48:11 +02:00
Marek Bel
a7fdfdd258 Put repetitive code into separate function. No change in functionality. 2018-09-18 17:15:13 +02:00
Marek Bel
6ee97468ee Remove lcd_buttons_update() call from all other places than interrupt. There is no known reason, why lcd_buttons_update() should be called from multiple places and multiple contexts. Remove mutex, which is not needed anymore, and wasn't implemented properly anyway (Operation was not atomic.). 2018-09-18 16:05:49 +02:00
Marek Bel
90a10a692a Enable button debouncing also in modal mode (!lcd_update_enabled). In lcd_clicked() consume click event immediately. 2018-09-18 14:38:50 +02:00
Marek Bel
ebfbf4ac3f Merge branch 'MK3' into MK3_dev 2018-09-07 09:24:45 +02:00
PavelSindler
48f5da9cb8 lcd_clicked fix 2018-09-06 20:54:51 +02:00
Marek Bel
3b3d6ab472 Merge branch 'MK3' into MK3_dev 2018-08-21 17:56:34 +02:00
Robert Pelnar
c4281b0b36 Status screen redesign - fix of flickering and text wraping on status screen
printf formating, saved flash, reduced code size
2018-08-20 00:27:45 +02:00
Marek Bel
ac62117d6b Merge remote-tracking branch 'prusa3d/MK3' into MK3_dev 2018-08-13 19:38:55 +02:00
Robert Pelnar
310751397c line endings + fixed declaration 2018-08-08 20:11:57 +02:00
Robert Pelnar
2f17997622 reset safety timer everytime lcd clicked 2018-08-08 19:33:44 +02:00
Marek Bel
791b568339 Fix compiler warnings: sketch/uart2.c:19:33: warning: unused parameter 'stream' [-Wunused-parameter]
sketch/uart2.c:28:25: warning: unused parameter 'stream' [-Wunused-parameter]
sketch/Marlin_main.cpp:925:5: warning: unused parameter 'stream' [-Wunused-parameter]
sketch/lcd.cpp:224:5: warning: unused parameter 'stream' [-Wunused-parameter]
2018-08-07 17:51:30 +02:00
Marek Bel
453b199057 Save 8B flash, fix compiler warning sketch/sound.cpp:62:6: warning: unused parameter 'eSoundClass' [-Wunused-parameter] 2018-08-07 15:05:18 +02:00
Marek Bel
f6094a58f7 Fix compiler warning sketch/lcd.cpp:160:6: warning: unused parameter 'cols' [-Wunused-parameter]. 2018-08-03 15:37:40 +02:00
Marek Bel
a85d5948c3 Make function static, save 38B flash. 2018-08-03 15:32:28 +02:00
Marek Bel
373b4a1ea9 Fix compiler warnings sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::unget' [-Wmissing-field-initializers]
FILE _lcdout = {0};
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::flags' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::size' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::len' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::put' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::get' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::udata' [-Wmissing-field-initializers]
2018-08-03 15:25:52 +02:00
Marek Bel
e13e3a9dc4 Merge remote-tracking branch 'prusa3d/MK3' into fix_compiler_warnings 2018-08-02 21:42:55 +02:00