Compare commits

..

464 Commits

Author SHA1 Message Date
InsanityAutomation 098256d5df Merge pull request #55 from g0dsCookie/CrealityDwin_2.0
Fixed include paths
2019-09-17 08:58:44 -04:00
InsanityAutomation a0f00367fe Update max bed thermal limits for large dc bed at high temps 2019-09-16 22:22:11 -04:00
InsanityAutomation 60cfb42668 dont send octo cancel on timer stop 2019-09-09 10:09:54 -04:00
InsanityAutomation 138de675fe Add tone 2019-09-08 22:52:08 -04:00
InsanityAutomation 263ca25342 Merge branch 'CrealityDwin_2.0' of https://github.com/InsanityAutomation/Marlin into CrealityDwin_2.0 2019-09-08 19:58:39 -04:00
InsanityAutomation e4211d2358 Remove obsolete 2019-09-08 19:58:28 -04:00
InsanityAutomation 03897008e4 Add files via upload 2019-09-08 19:58:05 -04:00
InsanityAutomation 9291b46600 Bump 2019-09-08 19:57:39 -04:00
InsanityAutomation ed5cc1a0c0 Bump with M851XY 2019-09-08 18:38:25 -04:00
InsanityAutomation 769701e64a Update Configuration.h 2019-09-08 17:40:43 -04:00
InsanityAutomation 4c8f900950 Update Creality_DWIN.cpp 2019-09-08 16:37:12 -04:00
InsanityAutomation c0f97e7874 Merge branch 'CrealityDwin_2.0' of https://github.com/InsanityAutomation/Marlin into CrealityDwin_2.0 2019-09-07 11:32:17 -04:00
InsanityAutomation 232dec268d NewRev 2019-09-07 11:32:04 -04:00
InsanityAutomation 6af3951a47 Add files via upload 2019-09-07 11:31:17 -04:00
InsanityAutomation ea34fa2616 fix extui timers 2019-09-07 10:31:33 -04:00
InsanityAutomation 0e04d7b43d Update tool_change.cpp 2019-09-06 22:18:05 -04:00
InsanityAutomation 093d3cb32b revert non working bed leveling disable more tool change 2019-09-06 21:44:59 -04:00
InsanityAutomation f603a152c7 Merge branch 'CrealityDwin_2.0' of https://github.com/InsanityAutomation/Marlin into CrealityDwin_2.0 2019-09-05 21:33:51 -04:00
InsanityAutomation cf7e896328 Update Configuration.h 2019-09-05 21:33:46 -04:00
InsanityAutomation d4ad91c8f2 Add files via upload 2019-09-05 21:20:57 -04:00
InsanityAutomation e45d5354ea Add files via upload 2019-09-05 21:11:38 -04:00
InsanityAutomation 4279b78b17 dont compile creality dwin if not enabled 2019-09-05 20:46:59 -04:00
InsanityAutomation 5d24ecb17b Update Configuration.h 2019-09-05 16:28:13 -04:00
InsanityAutomation 23c7b5018e Small tweaks 2019-09-05 16:27:35 -04:00
InsanityAutomation 04d499c816 Update Configuration.h 2019-08-30 13:02:16 -04:00
g0dsCookie e943b54003 Fixed include paths 2019-08-30 15:51:51 +02:00
InsanityAutomation 7d04475e09 Update bltouch.cpp 2019-08-29 14:29:15 -04:00
InsanityAutomation 8c796fcd3b Update Configuration.h 2019-08-29 14:22:43 -04:00
InsanityAutomation 39997b7710 Update Creality_DWIN.cpp 2019-08-29 13:32:24 -04:00
InsanityAutomation 6ac884ee58 Update Creality_DWIN.cpp 2019-08-29 13:30:23 -04:00
InsanityAutomation b0829e5745 Update Creality_DWIN.cpp 2019-08-29 12:58:20 -04:00
InsanityAutomation ed2d955a42 Some ender 5 tweaks 2019-08-29 10:25:34 -04:00
InsanityAutomation 49c78a4b25 Fix Progress, test bltouch servo to 0, set message for z offset change 2019-08-28 17:31:58 -04:00
InsanityAutomation eb53a1c318 Update Configuration.h 2019-08-28 12:00:24 -04:00
InsanityAutomation 4743bb58e9 Update README.md 2019-08-24 15:02:43 -04:00
InsanityAutomation 27f48c2c46 Update bin file name 2019-08-24 14:54:44 -04:00
InsanityAutomation 9ab228f19d segmented move change 2019-08-24 00:44:32 -04:00
InsanityAutomation 00d3cdc8a6 Update README.md 2019-08-24 00:37:13 -04:00
InsanityAutomation 384f45dcae Update README.md 2019-08-24 00:23:11 -04:00
InsanityAutomation ebc40633a5 Add standard configuration Hex files 2019-08-23 21:42:01 -04:00
InsanityAutomation 61665a4b6f Update README.md 2019-08-23 21:29:03 -04:00
InsanityAutomation 848020d314 Update README.md 2019-08-23 21:24:51 -04:00
InsanityAutomation 885fe5f573 Update README.md 2019-08-23 21:20:56 -04:00
InsanityAutomation 39f035547a Update README.md 2019-08-23 21:18:36 -04:00
InsanityAutomation 975141f77e Tweaks 2019-08-23 21:18:09 -04:00
InsanityAutomation aa6b6a3b3d crx pid, tweaks 2019-08-23 19:58:17 -04:00
InsanityAutomation 0b81c1cd14 ExtUI babystep to position without probe 2019-08-23 15:55:26 -04:00
InsanityAutomation 1a1f9562d8 Update README.md 2019-08-23 14:04:29 -04:00
InsanityAutomation 334893f831 Update CR-X_Stock__1.70_Screen.7z 2019-08-23 13:42:49 -04:00
InsanityAutomation 73310d9848 Update README.md 2019-08-23 13:34:23 -04:00
InsanityAutomation 34cce5a26a Archive TFT files
50mb to 1.5mb
2019-08-23 11:14:54 -04:00
InsanityAutomation 45688c0ae6 Update README.md 2019-08-23 00:25:53 -04:00
InsanityAutomation 420ea1c30e Update README.md 2019-08-23 00:12:17 -04:00
InsanityAutomation 10a71da890 Update single extruder screens with 2.0 functions 2019-08-22 23:13:14 -04:00
InsanityAutomation dde5cdfb0b Update Creality_DWIN.cpp 2019-08-22 21:44:50 -04:00
InsanityAutomation 0fea530069 Tweaks 2019-08-22 20:55:42 -04:00
InsanityAutomation b55264b5ed fix status callback 2019-08-22 20:13:02 -04:00
InsanityAutomation fb1cd0cf3c TweaksTouchups 2019-08-22 19:39:40 -04:00
InsanityAutomation 6840dcf87d Update Configuration.h 2019-08-22 14:32:58 -04:00
InsanityAutomation 04f81d0aa4 Update Creality_DWIN.cpp 2019-08-22 13:15:59 -04:00
InsanityAutomation 1884f3754c Update Creality_DWIN.cpp 2019-08-22 13:04:17 -04:00
InsanityAutomation 8f8511d2e0 tweaks 2019-08-22 12:34:14 -04:00
InsanityAutomation 966ffa295f bump 2019-08-21 22:31:18 -04:00
InsanityAutomation 63815d9acc Bump 2019-08-21 20:32:28 -04:00
InsanityAutomation 1b5f70a35e fix level corners 2019-08-21 20:29:06 -04:00
InsanityAutomation f6fc94dbc4 sd card continuity bump 2019-08-21 17:17:47 -04:00
InsanityAutomation 06982535d2 Tweaks 2019-08-21 10:45:53 -04:00
InsanityAutomation f62a5f3ff6 Update Configuration.h 2019-08-21 00:14:46 -04:00
InsanityAutomation 2fc4871bc1 Update Configuration.h 2019-08-21 00:12:42 -04:00
InsanityAutomation 7e5b72bb49 Update Configuration.h 2019-08-20 23:25:52 -04:00
InsanityAutomation 31386be583 throttling 2019-08-20 22:45:47 -04:00
InsanityAutomation cff4360621 Tweaks 2019-08-20 20:28:39 -04:00
InsanityAutomation f515f22313 update pid refix old bug 2019-08-20 18:44:20 -04:00
InsanityAutomation e249e380fc usability tweaks 2019-08-20 18:12:01 -04:00
InsanityAutomation 9ce076a045 Bump 2019-08-20 17:59:36 -04:00
InsanityAutomation f70c1d59da debug 2019-08-20 17:21:49 -04:00
InsanityAutomation f30bf8ba7d Update README.md 2019-08-20 14:26:05 -04:00
InsanityAutomation 5e82e4e33d Update Creality_DWIN.cpp 2019-08-20 14:00:19 -04:00
InsanityAutomation b54f11859a Update Creality_DWIN.cpp 2019-08-20 10:20:35 -04:00
InsanityAutomation 5c051a005f Update README.md 2019-08-19 12:43:19 -04:00
InsanityAutomation d25e477f76 Update README.md 2019-08-19 12:40:37 -04:00
InsanityAutomation a1d8f5f79f Update README.md 2019-08-19 12:39:43 -04:00
InsanityAutomation fd52a71294 Update README.md 2019-08-19 12:38:59 -04:00
InsanityAutomation adc60676ae Update README.md 2019-08-19 10:16:42 -04:00
InsanityAutomation 55a69ca853 Update README.md 2019-08-19 10:15:31 -04:00
InsanityAutomation e0e42a5f61 cleanup 2019-08-18 23:20:16 -04:00
InsanityAutomation 2b10dfaf52 Update Creality_DWIN.cpp 2019-08-18 23:18:47 -04:00
InsanityAutomation 4599988e2a One more SD tweak 2019-08-18 23:01:39 -04:00
InsanityAutomation ea10994180 Tweak sd file select 2019-08-18 22:42:33 -04:00
InsanityAutomation 534a3f39bb Update Creality_DWIN.cpp 2019-08-18 21:00:40 -04:00
InsanityAutomation 9f04dfb0a1 Change txt to white 2019-08-18 20:42:54 -04:00
InsanityAutomation 34d8f1d81f Fix swapped icon 2019-08-18 19:14:21 -04:00
InsanityAutomation 005cbbbb17 Update G28.cpp 2019-08-18 19:09:08 -04:00
InsanityAutomation 9dbf731d9a fix runout trigering oon either sensor 2019-08-18 18:29:04 -04:00
InsanityAutomation 3f752657a7 turn runout back on 2019-08-18 18:04:52 -04:00
InsanityAutomation dd70e03767 lots of fixes 2019-08-18 18:00:35 -04:00
InsanityAutomation ecdc3a0911 Tweaks 2019-08-18 14:51:55 -04:00
InsanityAutomation 2416912aef Bump 2019-08-18 14:48:04 -04:00
InsanityAutomation 6d7220e379 Initial Ender 5 support, migrate max support 2019-08-18 14:44:53 -04:00
InsanityAutomation 80134a4a48 Update Configuration.h 2019-08-18 12:26:37 -04:00
InsanityAutomation e49bbfef14 Delete DWIN_SET.7z 2019-08-18 10:35:12 -04:00
InsanityAutomation 0c48e709ff Updates again 2019-08-18 00:45:27 -04:00
InsanityAutomation 38aba644c3 Update 2019-08-17 22:04:51 -04:00
InsanityAutomation 6498c4cf88 Config sync 2019-08-17 20:23:22 -04:00
InsanityAutomation 9948054cb7 Lots of fixes 2019-08-17 19:29:45 -04:00
InsanityAutomation 412e3aa1f6 Update ui_api.cpp 2019-08-17 00:49:32 -04:00
InsanityAutomation 9975799c5f CRX Works too 2019-08-17 00:18:56 -04:00
InsanityAutomation 5f688304f6 Update Creality_DWIN.cpp 2019-08-16 10:34:17 -04:00
InsanityAutomation ba919e49fc Mostly works ok-ish 2019-08-16 00:31:17 -04:00
InsanityAutomation a2fa854d9c Bump, filament runout mostly works 2019-08-14 00:24:51 -04:00
InsanityAutomation 518e313260 Update Configuration.h 2019-07-23 22:47:30 -04:00
InsanityAutomation 4e2b4ce9a0 Bump 2019-07-23 22:46:22 -04:00
InsanityAutomation 08b5bdda27 fixes 2019-07-19 10:47:24 -04:00
InsanityAutomation a9d634fe28 minor tweak 2019-07-19 10:23:45 -04:00
InsanityAutomation 4198b14e2f Bump to head, some tweaks 2019-07-19 10:21:38 -04:00
InsanityAutomation 615ac13a52 bump to head, misc fixes 2019-06-23 12:06:21 -04:00
InsanityAutomation 8d23b85b47 Update Creality_DWIN.cpp 2019-06-23 11:38:16 -04:00
InsanityAutomation ad17b23fc8 SD Print Working 2019-05-27 23:57:46 -04:00
InsanityAutomation 3ef237cece More progress 2019-05-18 14:56:14 -04:00
InsanityAutomation 4c2fe3bad8 Bump and fix mesh define issue 2019-05-15 23:00:26 -04:00
InsanityAutomation 0822bcbff8 Bump in the night 2019-04-25 23:35:43 -04:00
InsanityAutomation 672f1c60fb progress 2019-04-25 23:23:01 -04:00
InsanityAutomation 3a8c87b511 Update Creality_DWIN.cpp 2019-04-24 21:18:29 -04:00
InsanityAutomation a43dd70976 Update Configuration.h 2019-04-23 18:39:02 -04:00
InsanityAutomation e890bdffeb disable some mesh and bed leveling stuff until API is fixed 2019-04-23 17:57:19 -04:00
InsanityAutomation eb54bf155a Bump to head, another couple steps 2019-04-23 17:37:25 -04:00
InsanityAutomation 53e9e8c7b3 close the night... 2019-03-17 01:00:47 -04:00
InsanityAutomation cddbd1c6b4 Updates 2019-03-17 00:41:55 -04:00
InsanityAutomation 77db45432b Update Creality_DWIN.cpp 2019-03-17 00:39:00 -04:00
InsanityAutomation 68240d398f IT COMPILES!!!!
without sd card to screen
2019-03-17 00:23:55 -04:00
InsanityAutomation 6a3532bc71 Another Step 2019-03-17 00:05:31 -04:00
InsanityAutomation a94dedd2cb Compile fixes 2019-03-16 23:36:26 -04:00
InsanityAutomation 2108715fa6 Update Configuration.h 2019-03-16 22:49:55 -04:00
InsanityAutomation 614c9c6c9d more 2019-03-16 19:02:40 -04:00
InsanityAutomation 1c658401de bump 2019-03-16 16:29:28 -04:00
InsanityAutomation 97379d5d53 More updates 2019-03-16 16:03:56 -04:00
InsanityAutomation 3e5a957872 Updates 2019-03-16 13:31:19 -04:00
InsanityAutomation e9588824bb 10s pro support and basic dwin files to start changes 2019-03-16 13:31:19 -04:00
Ludy 59353546e8 Fix BUTTON_EXISTS and misplaced comma (#13411)
Fixes #13410 and redeclaration of `BUTTON_EXISTS`
2019-03-16 11:59:12 -05:00
InsanityAutomation 09eb30dc05 IDEX Mirror mode based on Formbot / Vivedino Symmetric mode (#13404) 2019-03-15 22:46:27 -05:00
Scott Lahteine 5c1aa5162d Adjust M206 output in M503 for DELTA 2019-03-15 19:20:40 -05:00
Scott Lahteine ad8b82d054 Fix KILL_PIN assignment for MKS_MINI_12864
According to #13397
2019-03-15 19:20:40 -05:00
Scott Lahteine 3a916b4ef2 Create bresenham.h 2019-03-15 19:20:39 -05:00
Karl Andersson 5d3928cb01 PWM is not defined on Arduino Core STM32 (#13405) 2019-03-15 19:14:06 -05:00
Scott Lahteine 9a515cbd32 Fix Pause Print message and behavior (#13394) 2019-03-14 02:26:07 -05:00
Scott Lahteine f5bcc00570 Unify debugging output with debug_out.h (#13388) 2019-03-14 02:25:42 -05:00
Andrei Pozolotin cc8a871705 Add capability string CHAMBER_TEMPERATURE (#13391)
Reference: #13380
2019-03-13 18:09:22 -05:00
Scott Lahteine 67bee06e43 No patch needed for non-libmaple analogWrite
See https://github.com/pinchies/Marlin/pull/1#issuecomment-471388743
2019-03-13 07:21:10 -05:00
Scott Lahteine f89b375fb9 Fixes and improvements for PWM pins (#13383) 2019-03-13 06:51:15 -05:00
Scott Lahteine 87162658c4 Fix and improve software endstops (#13386) 2019-03-13 05:48:36 -05:00
Scott Lahteine 6214c997c0 Remove includes of <binary.h> 2019-03-13 05:32:33 -05:00
Scott Lahteine 4555ae448f Fixups for ESP32 2019-03-13 05:32:33 -05:00
Scott Lahteine a5ea3e2f15 Fix hotend offset on switching toolhead change
See commentary at #11623
2019-03-13 05:32:21 -05:00
jmz52 8e0ac93d60 Fix 'UNUSED redefined' compiler warning (#13387) 2019-03-13 04:34:02 -05:00
Hadrien Jouet 0278ad0a6d Add ESP32 WiFi interface (#11209) 2019-03-13 00:48:08 -05:00
InsanityAutomation c03df89921 ExtUI Mesh Leveling Extensions (#13363) 2019-03-13 00:45:52 -05:00
InsanityAutomation 050eac03af Single X Duplication Extension (#13373)
* Multi-nozzle selective duplication
* Use a bit-mask, reduce stepper_indirection.h size
* Tweak the multi-nozzle duplication description
* Use 'S' as a bool in M605
* Add HAS_DUPLICATION_MODE conditional
* Remove '_MODE' from the option name
* M605 in the style of Stacker M280
* Also include direct mask style (P)
2019-03-13 00:42:50 -05:00
Scott Lahteine ad91476d26 Fix USEABLE_HARDWARE_PWM 2019-03-13 00:12:46 -05:00
Scott Lahteine d63da4592d Tweak to SCARA_move_to_cal 2019-03-12 22:06:50 -05:00
Scott Lahteine 51ff5b68fa Clean up fastIO ahead of PWM patch 2019-03-12 20:39:55 -05:00
Scott Lahteine 388babbcea Tweak SERIAL_PRINTF 2019-03-11 20:58:27 -05:00
Scott Lahteine d94e077901 Apply HAS_HOTEND_OFFSET where needed 2019-03-11 20:58:27 -05:00
Scott Lahteine 11d6a939df Always define axis_unhomed_err 2019-03-11 20:58:27 -05:00
7eggert 10c8c034bd Allow both encoder and ADC keypad (#13355) 2019-03-11 18:10:56 -05:00
Andrei Pozolotin 31ff7da7ac Add missing CHAMBER options (for M141) (#13371) 2019-03-11 16:50:07 -05:00
Scott Lahteine 0375e92847 Followup to serial rework
As mentioned in #13370
2019-03-11 16:46:04 -05:00
jmz52 013bb469ca Fix compilation for STM32F1 with no SDIO (#13366) 2019-03-11 16:40:51 -05:00
Scott Lahteine e52bcc9408 Limit top bed temp to BED_MAXTEMP - 10
The chances of a 10° overshoot is pretty minimal.
2019-03-11 16:32:34 -05:00
Scott Lahteine 98b55421a5 Clean up some temp config 2019-03-11 16:31:23 -05:00
InsanityAutomation 785a7028bf Followup to 'volatile' patch (#13369)
Originally #13344
2019-03-11 15:01:57 -05:00
Scott Lahteine aa1d587128 Some LCD code cleanup 2019-03-11 05:07:31 -05:00
Scott Lahteine fa11427ec6 Remove obsolete LCD_CONTRAST 2019-03-11 03:33:07 -05:00
pinchies 4df9509ead Add support for printers with inverted fan pins (#13362)
Add support for printers with inverted fan pins by adding `#define FAN_INVERTING 1` to `Configuration_adv.h` and modifying the fan write macros.
2019-03-10 20:51:21 -05:00
Scott Lahteine 1f7e220387 Make HAL ISR macros function-like 2019-03-10 20:44:27 -05:00
Scott Lahteine e3ce346f24 Report position to host in Nozzle::park 2019-03-10 19:09:28 -05:00
Scott Lahteine 77b4176152 Use lib include for bit_constants.h 2019-03-10 19:09:28 -05:00
Scott Lahteine 3419099f0a Clean up whitespace 2019-03-10 19:09:28 -05:00
pinchies 4c43e6c48b Fix "spontaneous heating" issue (WRITE bug) on STM32 (#13356)
Should fix "spontanous heating" problems due to order of operations error. Error occurs at least with ststm32 v5.1.0 in PlatformIO.
2019-03-10 17:25:54 -05:00
Michiel Baird b824a517aa Add G38.4 and G38.5 (#13348) 2019-03-10 17:22:09 -05:00
Bruce j Beare e4d080e63c Reset after kill with a button on the KILL_PIN (#13091) 2019-03-10 09:57:38 -05:00
MoellerDi c36989c39e Fix chamber temperature measurement (#13350) 2019-03-10 09:51:13 -05:00
Scott Lahteine 12503fce06 Followup to wait_for_user fix 2019-03-10 09:14:02 -05:00
Scott Lahteine 33a08fc6f7 Fix typos from temperature rework
Followup to #12201
2019-03-10 08:28:16 -05:00
Tobias Frost 2efbcc90c5 Fix wait_for_user compile error (#13352) 2019-03-10 08:07:41 -05:00
Tobias Frost 60e82e3929 Send notifications to ExtUI for M0/M1 (#13344)
- Send notifications to ExtUI for M0/M1

- wait_for_user can be non-volatile (not changed by interrupt)
  C / C++ compilers don't optimize away reads of non-volatile variables when a function call is used between accesses, because *any* variable could be changed by the function call. Since `wait_for_user` can't be changed without a function call, it should be non-volatile so the compiler can optimize away cases where it is read more than once without an intervening function call.
2019-03-09 14:20:37 -06:00
Marcio Teixeira 00fc43144a Follow up fixes to various PRs. (#13334)
- Ensure `MarlinUI:get_progress` is defined for `ExtUI`.
- Fix for `BACKLASH_SMOOTHING` with small segments.
  `BACKLASH_SMOOTHING` with extremely small segments failed to fully correct due to the correction factor being rounded down. Rounding up ensures the entire backlash will converge to zero even for small segments.
- Add pinout for the beta revision `EINSY_RETRO`.
- Update soft endstops with tool offsets (for toolchange et. al. move clamping) (#12568)
2019-03-09 14:20:37 -06:00
Scott Lahteine c7d618b4d9 Fix SERIAL_ECHOLNPAIR
Fix #13333
2019-03-09 14:20:37 -06:00
InsanityAutomation d54741eda8 Update some G26 plausible values. Add speed control. (#13330) 2019-03-08 03:13:44 -06:00
Msq001 fb3302feda Fix STM32F1 Serial and ADC pins (#13331) 2019-03-08 02:21:32 -06:00
Reece Kibble dbead66988 Allows user to set (almost) any PWM frequency (#12638) 2019-03-08 02:15:42 -06:00
Tobias Frost afbec5ff7e Have ExtUI::getProgress use ui.get_progress (#13328) 2019-03-07 18:00:38 -06:00
3dlabsio 645ca7af7a M141 Heated Chamber, Temperature rework (#12201) 2019-03-07 02:09:39 -06:00
Scott Lahteine 44571775bd Further support for 6 extruders 2019-03-07 01:00:56 -06:00
Chris Pepper 8d95019442 LPC176x NeoPixel Support (#13322) 2019-03-06 23:54:19 +00:00
Scott Lahteine 893ee68b52 Clean up trailing whitespace 2019-03-06 01:02:43 -06:00
Scott Lahteine 39f1222060 One fewer G29 error string 2019-03-05 23:04:52 -06:00
InsanityAutomation 543fc4c117 Mention 2.0.x 8-bit support earlier in README (#13317) 2019-03-05 23:03:00 -06:00
Scott Lahteine cfdb38eda4 Allow SERIAL_ECHOPAIR to take up to 12 pairs (#13311) 2019-03-05 06:46:19 -06:00
Scott Lahteine 4771e372a1 Update criteria for PAUSE/RESUME/STOP menu items (#13294) 2019-03-05 06:46:06 -06:00
Tobias Frost 56fdcf93d1 Disallow SD_DETECT_INVERTED with FYSETC F6. (#13307) 2019-03-05 06:45:28 -06:00
Tobias Frost 7ce13a6ec1 Fix a print_job_timer compile error (#13304) 2019-03-05 06:39:15 -06:00
Tobias Frost 6df51201ae Include EXTENSIBLE_UI in single LCD sanity check (#13306) 2019-03-05 06:33:36 -06:00
Scott Lahteine 2e5a3b01fd Save Power Loss Recovery only on move commands 2019-03-05 02:43:29 -06:00
Scott Lahteine 15738ea506 Update a motion comment 2019-03-05 00:50:29 -06:00
Scott Lahteine bc87e97357 Prevent a tool change move out of bounds 2019-03-05 00:50:29 -06:00
Scott Lahteine 2212da453a Distinguish between analog/digital auto fans (#13298) 2019-03-05 00:41:31 -06:00
Chris Pepper 2513f6b550 Fix multiport G28 with Binary Transfer (#13308) 2019-03-04 16:44:54 +00:00
Chris Pepper 38bef9da91 Report auto temp to both serial ports, if available (#13301) 2019-03-03 21:03:48 -06:00
Robert Mendon 367d392880 Init stepper current after stepper pins are set up (#13302) 2019-03-03 20:58:02 -06:00
InsanityAutomation bf8b38e0f7 Relocate configs above Marlin/src folder (#13299) 2019-03-03 16:50:56 -06:00
Scott Lahteine d71dc5cf42 Fix for Ender 4 fan/case light pin
See #12731
2019-03-03 07:43:27 -06:00
Anthony Rich 7640b328df Support for Tronxy X5S 2e (#13297) 2019-03-03 07:41:05 -06:00
Scott Lahteine 599cdc3f0f Remove dead code from get_pid_output
See #12981
2019-03-03 05:45:20 -06:00
Scott Lahteine 35ae5daf2d Split up sdcard G-codes 2019-03-03 01:52:15 -06:00
Scott Lahteine 3f36a38512 Clean up some pre-serial-redirect includes 2019-03-03 01:52:15 -06:00
Scott Lahteine fa0d909dd3 Add FIL_RUNOUT_PIN for BIGTREE_SKR_V1.3
See #13267
2019-03-03 00:27:47 -06:00
Ludy bd4160dbaf Unused CS_ACTUAL_sb (#13282) 2019-03-02 17:30:30 -06:00
Vasily Evseenko 71773b128d Fix stepper use before init. Add Ultimaker2+ Extended clone config (#13284) 2019-03-02 17:29:02 -06:00
Scott Lahteine edc4e037c4 Add a note to G10 2019-03-02 17:19:36 -06:00
Tobias Frost 57afd0ab37 Fix range check bug in FileList::seek() (#13286)
When `count()` returns 0, `pos > (count()-1)` will always yield `true` due to integer underflow.
2019-03-02 16:43:08 -06:00
kAdonis 05c2f80826 Fix bug in wait-for-heatup (#13290) 2019-03-02 16:29:10 -06:00
Chris Pepper b0553d2d97 Add M997 support and simple implementation for LPC176x (#13281) 2019-03-01 20:11:50 -06:00
Scott Lahteine fa236e9718 General cleanup ahead of L64XX 2019-03-01 19:58:07 -06:00
Scott Lahteine 2f1e1dcb42 Gradual step towards EXTRUDERS 0 support 2019-03-01 01:51:24 -06:00
Scott Lahteine 99d0022fae Drop the Z_MIN_PROBE_ENDSTOP option (#13276) 2019-03-01 00:27:45 -06:00
Scott Lahteine 9a6b90f47d TMC2660.h comment tweaks 2019-03-01 00:25:22 -06:00
Scott Lahteine a2e3226597 Init XYZ to configured home position 2019-02-28 22:10:26 -06:00
Scott Lahteine 4fbbce9a35 Marlin Dev Mode for DOGM status screen 2019-02-28 22:10:26 -06:00
Scott Lahteine 998ce55be0 Alternative fan bitmap 2019-02-28 22:08:20 -06:00
InsanityAutomation e2e2a55d9b Add thermistor type 67 SliceEng (#13275) 2019-02-28 19:44:17 -06:00
Msq001 5b7ad3a5a0 Fix SKR onboard TF card CS pin (#13272) 2019-02-28 19:41:19 -06:00
Scott Lahteine 7fde3ed915 Skip hysteresis check when temp is already close to target
To eliminate a long delay during pause, park, and filament change
2019-02-28 14:35:19 -06:00
Chris Pepper 7de6476b3d Fix binary protocol error 2019-02-28 02:31:42 +00:00
Scott Lahteine 2c10222e87 card.transfer_port => transfer_port_index 2019-02-27 20:14:17 -06:00
Chris Pepper 4ab433d391 Fix binary protocol with one serial port (#13270)
- The `sdcard.transfer_port` variable is Marlin's internal serial port index, not the physical serial port number.
- Added packet number to "ok" response so hosts don't need to wait for the ACK.
- Renamed feature to `BINARY_FILE_TRANSFER`, as the speed up is only consequential to the ability to transfer binaries over serial.
2019-02-27 19:57:48 -06:00
Scott Lahteine ab781de5a0 Fix opt_add to accept quotes 2019-02-27 05:53:09 -06:00
InsanityAutomation eb4bf93ea4 Add more Babystep options (#13262) 2019-02-27 04:38:56 -06:00
Scott Lahteine f37df28d17 UBL G29 T current position fix
Counterpart to #12845
2019-02-26 22:25:53 -06:00
Msq001 f8a39919fa Add Bigtree SKR 1.3 board (#13267)
Co-Authored-By: Msq001 <msq001@users.noreply.github.com>
2019-02-26 21:30:00 -06:00
Bob Kuhn ddbe4cfa20 Printrboard G2 support (#13116) 2019-02-26 21:03:13 -06:00
Scott Lahteine 4200f9ed62 Hide freeMemory et.al. warnings 2019-02-26 18:03:00 -06:00
Scott Lahteine dc88747770 Fix Due GET_ARRAY_IS_DIGITAL
Co-Authored-By: bob-the-kuhn <bob.kuhn@att.net>
2019-02-26 17:49:14 -06:00
Scott Lahteine 2356970a91 Disable STM32F1 Travis CI test for now 2019-02-26 17:49:14 -06:00
Scott Lahteine a79b9bbe6b Cleanup whitespace, add a const 2019-02-26 17:49:14 -06:00
Giuliano Zaro 2616e4d4d9 Remove duplicated 'chitchat' defines (#13258) 2019-02-25 16:13:01 -06:00
Scott Lahteine 5d28575d4d Clean up some motion code 2019-02-25 16:01:42 -06:00
Scott Lahteine 808b076000 Update some ABL/UBL conditionals 2019-02-25 16:01:42 -06:00
Scott Lahteine 833c2e54a1 Add an empty flushTX to MarlinSerialUSB_Due 2019-02-25 13:48:14 -06:00
Scott Lahteine 38363902c7 Fix sanity checks for distinct E factor settings
Reference #13156
2019-02-25 00:20:36 -06:00
Scott Lahteine 64253e1a58 Followup to serial reform
Reference #13250
2019-02-25 00:20:36 -06:00
Minims 92a4984066 Fix G34 probe position (#13251) 2019-02-24 13:57:30 -06:00
Scott Lahteine e15354e387 Simplify serial port redirect (#13234) 2019-02-23 22:53:01 -06:00
Chris Pepper 88cc1d1a31 Fix Preprocessor syntax in Re-ARM pins file (#13247) 2019-02-24 01:36:58 +00:00
Karl Andersson 76e9ee33aa Fix include order to make SERIAL_PORT_2 work (#13241) 2019-02-23 16:56:09 -06:00
Bruce j Beare 562f2321d2 Fix a G34 bug, allow negative Z corrections (#13240) 2019-02-23 02:41:52 -06:00
FernandoVelcic edf025ed8d Update Spanish language (#13236) 2019-02-23 00:41:02 -06:00
Scott Lahteine 02fec89a0d Turn fans off in zero_fan_speeds
Addressing #13231
2019-02-22 21:00:44 -06:00
Scott Lahteine 15aa932aa6 HAL for Linux (#13146) 2019-02-22 19:09:10 -06:00
kwalters3 5eb82ca6a8 Change SSD1306_OLED_I2C_CONTROLLER to HAS_SSD1306_OLED_I2C (#13223) 2019-02-22 19:08:36 -06:00
Marcio Teixeira 109e67169c Define G21 as NOOP w/o INCH_MODE_SUPPORT (#13229)
Ticket #13228

If `INCH_MODE_SUPPORT` is undefined, G20 is an unknown command as it should be (Marlin is, by default, operating in metric mode). G21, however, is found in many slicers and printer start gcode sections and should be accepted (as a NOOP) to avoid the unknown commands.
2019-02-22 15:35:32 -06:00
AnHardt 31b0be74af Fix autotemp_factor menu setting (#13226)
Fix #12643
Only factors above 1 can have a 'positive' effect.
2019-02-22 15:30:17 -06:00
Evgeny-SPB f6ab62bc13 Fix Creality CR-10 S5 filament change (#13219) 2019-02-21 05:40:49 -06:00
Thomas Moore 9f5e4e5ad8 Update LPC1769 Pins Files (#13183) 2019-02-21 00:54:05 -06:00
Greg Nutt 608a6810e7 Fix DOGLCD_A0 pin in pins_Smoothieboard.h (#13217) 2019-02-20 18:08:49 -06:00
Scott Lahteine 80359c9937 Add more parameters to M240
Co-Authored-By: shitcreek <45380455+shitcreek@users.noreply.github.com>
2019-02-20 14:51:36 -06:00
Scott Lahteine a43e892fb5 Use 8-bit i2c address on LPC platform
Fix #9799 — hopefully not a unicorn
2019-02-20 06:27:26 -06:00
Scott Lahteine 631d867dc9 HAL cleanups 2019-02-20 06:27:26 -06:00
Scott Lahteine 89bbc30a09 Fix init of power supply pin
Fix #13184
2019-02-20 05:29:05 -06:00
Scott Lahteine 44c22e3935 Provide a default MAX6675_SS_PIN for ReARM
See #8010
2019-02-20 05:06:06 -06:00
Scott Lahteine 3c9a7926c2 Fix compile error with JUNCTION_DEVIATION
See #13000
2019-02-20 04:54:26 -06:00
Scott Lahteine 758c6c9464 Very minor SPI speedup 2019-02-20 04:36:23 -06:00
Scott Lahteine 422dd6666e Fix Due EEPROM write bug
See #13065
2019-02-20 04:36:23 -06:00
Scott Lahteine 03e109c4a3 FLASH_EEPROM => FLASH_EEPROM_EMULATION 2019-02-20 04:36:23 -06:00
Scott Lahteine 50917ccda6 Tweak some u8g interface code 2019-02-20 04:26:34 -06:00
LinFor ba39186364 TMC_DEBUG optimization and improvements (#13135) 2019-02-20 02:22:42 -06:00
Scott Lahteine 1424b368cf Tweak M122 comment in configs 2019-02-19 16:20:18 -06:00
Scott Lahteine 3a1b6fe8c1 Coding standards 2019-02-19 14:58:39 -06:00
InsanityAutomation 19af90face Fix a host action compile error (#13208) 2019-02-19 14:47:31 -06:00
Marcio Teixeira 992cdc8d14 Fix host action / G-code ordering in event_probe_failure (#13207)
Observing from the console, it makes the most sense to do `//action:probe_retry` before executing commands.
2019-02-19 14:45:03 -06:00
InsanityAutomation 33a6d52965 Fix a RAPTOR2 pin conflict (#13205) 2019-02-19 14:42:02 -06:00
InsanityAutomation 52665f54ad Fix bad Purge More logic (#13193) 2019-02-19 14:37:18 -06:00
Scott Lahteine 18458ec42b Error in Smoothieboard for unsupported display 2019-02-19 14:17:33 -06:00
InsanityAutomation d4ed9b3ef1 Babystep also requires homing (#13191) 2019-02-17 14:35:45 -06:00
InsanityAutomation ca7b2f574f Fix condition on tool change filament swap menu (#13190) 2019-02-17 12:33:46 -06:00
Roman Moravčík 208ab8b366 Fix compilation with one service interval (#13185) 2019-02-17 12:32:47 -06:00
Roman Moravčík 567d03a269 Update Slovak language (#13187) 2019-02-17 12:29:49 -06:00
Scott Lahteine c041eec699 Update G-code syntax for Sublime 2019-02-16 19:46:46 -06:00
Alain Martel 27203c62b8 Enable M240, set photo pins for 3DFabXYZ i3 (#13174) 2019-02-15 21:16:39 -06:00
Evgeny-SPB 3025ddf179 Support for Creality CR-10 5S (#13173) 2019-02-15 21:09:44 -06:00
Scott Lahteine e00aad84af Add M240 parameters D I J R S 2019-02-14 20:00:40 -06:00
Marcio Teixeira 31c240a8db Enhancements to G425 (#13159)
- Turn off bed leveling prior to calibrating.
    - This prevents lateral probes from having a Z component that
      triggers the Z endstop and causes the motion to be aborted.
- Got rid of static const float arrays "dimension" and "true_center"
    - Frees up 24 bytes of SRAM
- Changed incorrect use of "bool" for float in backlash macros.
    - Replaced arguments with 0.0f and 1.0f for clarity.
- Now only disables soft endstops (since calibration cube is outside of bed)
    - Not necessary to disable global endstops
2019-02-14 16:45:31 -06:00
Andy Shaw 84fc400aba Update BIQU SKR V1.1 pins, add TMC2130 settings (#13166)
* Remove untested displays add TMC2130 configs.
* Remove references to the ReARM, delete untested displays. Add TMC2130 settings. Cleanup spacing, etc.
2019-02-14 16:43:56 -06:00
Scott Lahteine ab2816c870 Patch for M240 2019-02-14 15:13:57 -06:00
Scott Lahteine d2bdb71c13 Add PHOTO_GCODE option, photo trigger physical move (#13168) 2019-02-14 15:09:35 -06:00
Scott Lahteine be9a409980 Fix M125 XY parameters, export get_homing_bump_feedrate 2019-02-14 05:25:46 -06:00
Scott Lahteine ce40c2e87c Use do_blocking_move_to(ref, fr) 2019-02-14 02:22:08 -06:00
Giuliano Zaro bdc2f10b90 Update Italian language, fix unused var warning (#13164) 2019-02-13 21:05:18 -06:00
Marcio Teixeira 9f0e1834ec Followup to #13039 (#13163)
- Fix compile error when accessing `process_subcommands_now_P`.
- Use `const` var eliminating double-negative (to make code more understandable).
2019-02-13 20:39:38 -06:00
Ludy 1ace97e946 [2.0.x] Update German language (#13150) 2019-02-13 20:31:50 -06:00
Scott Lahteine 7cf9b93f26 Add HAS_FILAMENT_SENSOR ahead of 12962 2019-02-12 20:13:20 -06:00
Giuliano Zaro 2c8d12d3ec Update Italian language (#13148) 2019-02-12 18:40:34 -06:00
Scott Lahteine c2b90c44e4 Prettify some code comments 2019-02-12 17:43:37 -06:00
Scott Lahteine a0dadc8c62 Smaller I2CPositionEncoder strings 2019-02-12 16:21:56 -06:00
Scott Lahteine 18996d2595 Fix some spelling 2019-02-12 16:21:56 -06:00
revilor e56c13670d Service interval watchdog (#13105) 2019-02-12 15:58:56 -06:00
InsanityAutomation 7f1b69b0c8 Add HOST_PROMPT_SUPPORT (#13039) 2019-02-12 15:55:47 -06:00
Scott Lahteine 0feeef2604 Update copyright in headers 2019-02-12 15:30:11 -06:00
Scott Lahteine 894f5c24a8 Fix trailing whitespace 2019-02-12 14:25:57 -06:00
Roman Moravčík bace52afd7 Fixed compilation with MMU2_MENUS disabled (#13140) 2019-02-12 12:55:49 -06:00
Ludy 584f9cd449 Update German language (#13137) 2019-02-12 12:54:57 -06:00
Scott Lahteine d9a3fea022 Comments in HAL_spi_STM32F1.cpp 2019-02-11 18:06:33 -06:00
Giuliano Zaro 773fa5c40f Fix define used when PID is off (#13119)
Replaced `PID_MAX` with `BANG_MAX` since it should be the correct define to be used when PID is not enabled.
2019-02-11 17:29:17 -06:00
Giuliano Zaro f7efe6f6c5 [2.0.x] Fix TEMP_STAT_LED startup init (#13120) 2019-02-11 17:27:59 -06:00
Ludy 2bd6ce4b62 Update German language (#13125) 2019-02-11 17:08:21 -06:00
Giuliano Zaro 27115ff7eb Update Italian language (#13123)
Incomplete.
2019-02-11 17:07:21 -06:00
Roman Moravčík 08a8bd10ca Updated Slovak translation (#13122) 2019-02-11 17:06:10 -06:00
Scott Lahteine 3e2a4c3b26 Show mixer and temperature menus while printing 2019-02-11 16:52:47 -06:00
Scott Lahteine 8d271f20fe C10mini E steps of 95
See https://www.patreon.com/posts/creality-cr10-24602624
2019-02-10 14:23:05 -06:00
Scott Lahteine 9737608f0a Enable gradient when alias is cleared 2019-02-10 06:39:12 -06:00
Simon Jouet 5cd0fa3ce1 Basic GPIO expander using the ESP32 I2S peripheral (#12959) 2019-02-10 05:40:31 -06:00
Scott Lahteine 3983cacbcf No extern needed for func decl 2019-02-10 05:38:27 -06:00
Scott Lahteine 43b29c093b Update pinsDebug_list.h with XY PWM pins 2019-02-10 05:13:05 -06:00
Scott Lahteine 166e567ab8 Fix HAS_MOTOR_CURRENT_PWM 2019-02-10 05:06:46 -06:00
Scott Lahteine 6de3d34378 M166 Gradients, LCD Menu for 2-channel Mixer (Geeetech A10M/A20M) (#13022) 2019-02-10 04:54:23 -06:00
LinFor 7ee35c2611 PID_MENU option to save PROGMEM in LCD menus (#13095) 2019-02-10 04:03:18 -06:00
Ludy 936f982392 Update German Language (#13110) 2019-02-10 03:55:08 -06:00
AnHardt 0e37fe8776 Apply minimum C in M303 (#13113)
Apply minimum `C` in `M303`. `PID_autotune()` needs to be called with a 'C'ycles-parameter >2 to give meaningful (different from 0) PID-factors. Therefore silently raise C to 3. Fixing one aspect of #13104
2019-02-10 03:54:45 -06:00
Scott Lahteine 5a316664e5 Update chopper timing 2019-02-10 03:12:20 -06:00
Scott Lahteine fcb16ceb29 Update default config 2019-02-10 00:20:11 -06:00
Alain Martel 9ae7cca5e9 Disable RGB_LED for 3DFabXYZ (#13097) 2019-02-08 15:18:20 -06:00
Scott Lahteine f3b6cb4d34 Clean up, update config comments 2019-02-08 15:13:52 -06:00
Scott Lahteine ae03753ef1 Fix PCA9533 with PRINTER_EVENT_LEDS 2019-02-08 15:13:52 -06:00
Scott Lahteine 95d3f3953a DEFAULT_WEBSITE_URL => BOARD_WEBSITE_URL 2019-02-08 14:54:34 -06:00
Scott Lahteine 6ddd81c178 [2.0.x] Update German Language (#13100)
add MMU2
2019-02-08 14:25:24 -06:00
Giuliano Zaro 7c9ff322f3 Update Italian language (#13099) 2019-02-08 14:23:37 -06:00
Ludy ce8cb6a5d9 [2.0.x] Update German Language
add MMU2
2019-02-07 20:04:34 +01:00
Scott Lahteine f269766408 Put the MMU2 menu with the others 2019-02-06 17:38:46 -06:00
Marcio Teixeira e1604198ff G425 — Auto-calibrate Backlash and Nozzle Offsets (#13050) 2019-02-06 17:20:17 -06:00
Marcio Teixeira 113af46a1b Add ExtUI methods to babystep probe/nozzle offsets (#12590) 2019-02-06 07:16:54 -06:00
InsanityAutomation 413e303ad5 More Advanced Pause options (#12984) 2019-02-06 06:39:42 -06:00
Mark Zachmann 19cf72e057 Support individual solenoid disable with M381 (#13008) 2019-02-06 06:34:53 -06:00
teemuatlut d81342254a Support new TMC drivers (#13026) 2019-02-06 06:33:14 -06:00
Scott Lahteine e1587da228 Clean up HAL_spi_Due.cpp (#13087) 2019-02-06 06:31:31 -06:00
Rolf Werum 524c6c10bf MAGNETIC_PARKING_EXTRUDER (#12351) 2019-02-06 06:30:53 -06:00
Scott Lahteine 1bd9a63049 Add HAS_EXTRA_ENDSTOPS macro 2019-02-06 05:10:05 -06:00
Scott Lahteine 3c49396370 Fix compile error with DUE + MAX6675 (#13086) 2019-02-05 22:56:13 -06:00
Roxy-3D ab6908a513 Fix Probe Offset bug... 2019-02-05 20:30:20 -07:00
revilor 69aaf5d096 MMU2 fixes (#13082) 2019-02-05 20:56:22 -06:00
Scott Lahteine 2f8e89adc3 Remove extraneous ui. prefixes 2019-02-05 19:04:37 -06:00
Scott Lahteine 870757aa17 Tweaks to pins_GT2560_V3.h 2019-02-04 22:52:50 -06:00
Scott Lahteine b96cc30cd0 HAL spacing tweak 2019-02-04 21:51:06 -06:00
Scott Lahteine 9e394139e5 Followup to 90911104 2019-02-04 10:46:52 -06:00
Sam Lane b35a7c2c87 Fixed closed-loop planner stall (#13005) 2019-02-04 07:43:09 -06:00
Ludy 691e925adc Update German language (#13012) 2019-02-04 07:25:07 -06:00
Scott Lahteine 1497fb388a M29 match logic was reversed (#13013)
* M29 logic was reversed 

If in card-saving mode generate errors line errors for anything that's *NOT* "M29 ?"

* Update queue.cpp

* Update queue.cpp
2019-02-04 07:23:42 -06:00
Scott Lahteine b5fd2fb58b Allow M29 to be processed late 2019-02-04 07:23:02 -06:00
Scott Lahteine c03bac9ad4 Update queue.cpp 2019-02-04 07:17:40 -06:00
Scott Lahteine a49f0205ea Update queue.cpp 2019-02-04 07:11:08 -06:00
Andy Shaw 9091110460 LPC1768 - Don't change CS pin state (#13015) 2019-02-04 07:08:39 -06:00
Scott Lahteine 10d855cb21 Sanity check USER_GCODE formatting 2019-02-04 06:36:41 -06:00
Scott Lahteine d97bb4c41c Followup to e10943d0 2019-02-04 06:11:31 -06:00
jeffstaley 2f176d6fb8 Flush RX buffer on G-code line errors to prevent hang (#13018) 2019-02-04 06:03:49 -06:00
Scott Lahteine ca73b2f465 Add static assert to catch errors in COPY(a,b) 2019-02-04 05:52:32 -06:00
Nathan df1043516e Fix the delta homing issue (#12974) 2019-02-04 05:25:50 -06:00
Scott Lahteine 4200bd2fc1 Report on M92 with no arguments (#12833) 2019-02-04 05:24:15 -06:00
Scott Lahteine e10943d0d8 Minor tweak to main menu 2019-02-04 04:58:31 -06:00
Scott Lahteine d4d1b28a06 Fix some include paths 2019-02-04 03:57:15 -06:00
Scott Lahteine 0d720a6ff4 Tweak to emergency_parser.h 2019-02-04 03:56:56 -06:00
Scott Lahteine 0a7ea7063f Hide Resume Print when not relevant 2019-02-04 03:02:44 -06:00
Scott Lahteine afe79ba22b Minor code cleanup 2019-02-04 02:23:06 -06:00
Scott Lahteine fdb97a3e9c Add class and macro to save and auto-restore a variable 2019-02-04 02:23:06 -06:00
Scott Lahteine 433518de74 Prevent M420 error from disconnecting OctoPrint
Just echo the error instead of labeling it `Error:`.
2019-02-04 01:54:43 -06:00
Marcio Teixeira 5cfc1cdacc Support SWITCHING_NOZZLE with 2 servos (#13054) 2019-02-04 00:19:56 -06:00
Psycho 3c88cac2e9 Velleman Vertex Delta pins (#13072) 2019-02-04 00:15:08 -06:00
Nicolas G 6fb4001b58 Add option to disable fan speed slowing in M303 (#13066) 2019-02-04 00:12:41 -06:00
Scott Lahteine ca1be02bf0 Tweak some pins formatting 2019-02-04 00:06:41 -06:00
Scott Lahteine 38c2ca9281 Clean up trailing whitespace 2019-02-03 23:00:57 -06:00
Mark Zachmann 4d1093b386 Fix init of last_direction_bits (#13067) 2019-02-03 01:29:00 -06:00
Scott Lahteine 4fa1c52688 Tweak serial output code 2019-02-03 01:09:14 -06:00
Scott Lahteine a5e3384691 Pre-apply cosmetic changes to mixing 2019-02-03 01:09:14 -06:00
Scott Lahteine 0358ffcd4c Drop E element from homing_feedrate_mm_s 2019-02-02 15:55:00 -06:00
Scott Lahteine 95223cb28e Remove dead code from stepper.h
These values are always supplied by `Conditionals_post.h`.
2019-02-02 15:35:05 -06:00
Scott Lahteine 6fe39e6117 Add --quick option to mfqp, add BRANCH check to mfinfo 2019-02-02 14:06:01 -06:00
mattfredwill c3cb449990 TMC2130 dual-stepper Sensorless Homing (#13061) 2019-02-01 18:09:01 -06:00
Marcio Teixeira f6edd2c472 Move stepper settings to "Advanced Settings" menu (#13063) 2019-02-01 18:07:04 -06:00
InsanityAutomation 68bbac207e Update pins_FORMBOT_TREX3.h (#13058) 2019-02-01 18:06:02 -06:00
revilor 6a57d0b381 Prusa MMU2 (#12967) 2019-01-31 19:10:52 -06:00
Scott Lahteine 996f7d1642 Fix I2C_POSITION_ENCODERS commentary 2019-01-30 22:17:17 -06:00
raTmole 988b5aa4e6 Update GT2560 V3 pins (#13036) 2019-01-30 21:10:56 -06:00
InsanityAutomation 7d927b6691 Move Z Probe Z Offset from Advanced to basic Configuration (#13056) 2019-01-30 21:08:36 -06:00
Giuliano Zaro 31e213e427 Always show Tune sub-menu (#13049) 2019-01-30 21:05:55 -06:00
teemuatlut f0503372d9 Revert E_AXIS_N cast (#13055) 2019-01-30 20:55:05 -06:00
InsanityAutomation a1d03fe7ba Fix single nozzle fan (#13038) 2019-01-30 20:54:04 -06:00
Scott Lahteine 159d7eefda New boards entry for the A20M 2019-01-28 21:08:20 -06:00
Scott Lahteine 97da6c1da5 Use MIN/MAX for min/max 2019-01-28 20:36:13 -06:00
Scott Lahteine 17a8c37148 Label menu edit items 2019-01-28 20:20:46 -06:00
raTmole ddeca7a358 Fix resume from power loss G-Code. (#13035) 2019-01-28 13:19:26 -06:00
Thomas Moore 02ab66fca3 Update Cohesion3D Pins Files (#13027) 2019-01-27 23:11:33 -06:00
Giuliano Zaro a79d80c78e Minor cleanup of pause code (#13030) 2019-01-27 23:10:25 -06:00
jeffstaley 0da636e1a3 Set correct stepper direction on reset (#13032)
On a reset steppers were being initialized to incorrect direction. Original code wasn't respecting `INVERT_Z_DIR` define.
2019-01-27 23:02:38 -06:00
Scott Lahteine 3845baf398 Followup to #12982 2019-01-27 22:53:46 -06:00
InsanityAutomation 48a3502656 Remote streamer improvements (#12982) 2019-01-27 22:43:13 -06:00
Scott Lahteine 621fbe99de Followup to #12817 2019-01-27 20:48:58 -06:00
Marcio Teixeira f214118e45 Action to notify host of filament runout. (#12817) 2019-01-27 20:18:05 -06:00
Scott Lahteine aad770bce8 Bring default configs in sync 2019-01-26 16:44:42 -06:00
jeffstaley 3f91233f6d M29 logic was reversed
If in card-saving mode generate errors line errors for anything that's *NOT* "M29 ?"
2019-01-25 07:36:52 -08:00
jeffstaley 0e0cc13650 Fix M29 for Pronterface SD card upload (#13010) 2019-01-24 21:10:59 -06:00
Jiri 24fffb8d93 Fix undefined lcd_tmpfan_speed on NO_LCD_MENUS (#13006) 2019-01-24 16:34:40 -06:00
Scott Lahteine 8f9b246d0e Tweak some formatting, replace tabs 2019-01-24 13:18:56 -06:00
Bo Herrmannsen 808df82b36 Support for Anycubic I3 (#12972) 2019-01-24 12:40:49 -06:00
Scott Lahteine ae91914260 Prevent name conflicts with mixed stepper drivers 2019-01-24 01:25:28 -06:00
Scott Lahteine 2b54e98f50 Remove L6470 test for LPC176x 2019-01-24 00:59:05 -06:00
Scott Lahteine 0eca236dcd Fix L6470 config comments 2019-01-24 00:58:16 -06:00
InsanityAutomation f4d1f13358 Warn on cold extrusion, dont error 2019-01-24 00:16:14 -06:00
Scott Lahteine aa74a900f5 Bring Rostock 301 and ArmEd configs up to date 2019-01-23 23:37:37 -06:00
Scott Lahteine a073293b6a Add --quick option to mfrb 2019-01-23 23:10:32 -06:00
Scott Lahteine 2117a45d1a Tweak usage strings 2019-01-23 23:10:32 -06:00
Scott Lahteine 0f07ba4f09 Tweak some comments 2019-01-23 20:18:13 -06:00
Scott Lahteine 00cdd41b5f Clean up for recent changes 2019-01-23 20:08:58 -06:00
Roman Moravčík 7d53b79596 Update Slovak translation (#12991) 2019-01-23 19:48:16 -06:00
Giuliano Zaro 18c32996c1 [2.0.x] Updated Italian language (#12997) 2019-01-23 19:35:42 -06:00
Bob Kuhn 7c1a5e3c47 Fix TEMP_TIMER in pins_STEVAL.h (#12994) 2019-01-23 19:34:39 -06:00
Scott Lahteine b4994ad12e Update language_it.h 2019-01-23 19:28:57 -06:00
Bob Kuhn 2f35747f29 L6470 SPI daisy chain support (#12895) 2019-01-23 19:06:54 -06:00
Scott Lahteine 6453b82a5e Clean up trailing whitespace 2019-01-23 15:57:01 -06:00
Scott Lahteine 48a581ba2e Tweak some HAL Due code 2019-01-23 00:53:20 -06:00
Scott Lahteine f7d96c5b28 Update mfinfo to allow extra parameters 2019-01-23 00:03:47 -06:00
Marcio Teixeira 54fdf57b8c ExtUI: Fix fan wrapping around from 0 to 100 (#12987) 2019-01-22 23:33:10 -06:00
InsanityAutomation dbe4126e07 Update language_en.h (#12988) 2019-01-22 23:32:01 -06:00
teemuatlut e5801b75f8 Fix TMC-related compile issues. (#12971)
- `STEALTHOP_[XYZE]` configuration options now set the default state.
2019-01-20 23:54:57 -06:00
Gert-Jan Rodenburg bb30927549 Fix pins for ZONESTAR_LCD with Zonestar ZRIB (#12956) 2019-01-20 23:52:51 -06:00
Ludy dc65d96aca Fix TMC compile error (#12965) 2019-01-20 23:47:28 -06:00
InsanityAutomation a1cf49935d Add laser control menu (#12883) 2019-01-20 23:41:47 -06:00
InsanityAutomation 75f2665f2e LCD SD Card items near top when not using wheel (#12926) 2019-01-20 23:24:53 -06:00
Scott Lahteine e1f951813a Remove old block end comment 2019-01-20 02:30:03 -06:00
Scott Lahteine 52108192d1 Prevent L6470 class name conflict with drivers.h define
Fix #12824
2019-01-20 00:32:56 -06:00
Scott Lahteine 0495fcd475 Minor spacing fix 2019-01-20 00:10:50 -06:00
lanserge c2cf8ffa82 Add support for Arduino DUE Shield Kit (#12950) 2019-01-19 23:43:32 -06:00
Scott Lahteine 4e5a915ef8 Fix some Makefile comments 2019-01-19 23:41:30 -06:00
Scott Lahteine a5911765c3 Tweak some spacing 2019-01-19 20:27:57 -06:00
chrisly42 99e5e8362f Rapide Lite 200 config, pins_RL200 RUMBA clone (#12848) 2019-01-19 20:19:14 -06:00
Scott Lahteine 6411680364 Update some pins spacing 2019-01-19 19:21:52 -06:00
teemuatlut 8a3f1d6932 Fix chopper timing struct and initialization (#12943) 2019-01-19 18:57:02 -06:00
Ludy c6991109b7 Update German language (#12953) 2019-01-19 18:50:24 -06:00
Giuliano Zaro ca9eb14f6a Update Italian language (#12951) 2019-01-19 18:48:13 -06:00
Ludy acf266fe78 Fix a compile warning, etc. (#12955) 2019-01-19 18:47:29 -06:00
Scott Lahteine 424aa05cc2 Fix some file endings 2019-01-19 18:19:12 -06:00
Scott Lahteine ce563d7c2e Various general cleanups
Mostly from the L6470-oriented PR
2019-01-19 16:56:12 -06:00
Scott Lahteine 02cc63d6d4 Update CreatorPro Configuration_adv.h 2019-01-19 16:37:50 -06:00
Marcio Teixeira f4c16e683b Follow up fixes to #12884 (#12940) 2019-01-17 18:48:29 -06:00
Scott Lahteine 712e23c383 Fix up some whitespace 2019-01-17 18:05:36 -06:00
Ziemowit 20c20dacb7 MKS SBASE needs DRV8825 (#12911) 2019-01-17 13:21:53 -06:00
Giuliano Zaro 7bb5d4bfe8 Small LED code reorganization (#12929) 2019-01-17 13:20:26 -06:00
teemuatlut e6805582a6 M569 to change stepping mode. Add new TMC section to LCD. (#12884) 2019-01-17 13:17:16 -06:00
Bob Kuhn d08f27e27b Add support for STEVAL 3DP001V1 (#12894) 2019-01-15 18:59:36 -06:00
Alain Martel cdb562d558 Bring Migbot config up to date (#12916) 2019-01-15 18:53:07 -06:00
Giuliano Zaro 8f4c6e6d1a Fix case light on boot (#12919) 2019-01-15 18:50:56 -06:00
Marcio Teixeira f11c6d5d02 Fix M107 when dual-nozzles share fan (#12819) (#12909) 2019-01-15 18:45:18 -06:00
Karl Andersson 64a4649290 STM32 - Fix SD write (#12897) 2019-01-15 18:44:22 -06:00
Ludy 294521439e Clean up Configuration_adv.h (#12900) 2019-01-15 18:42:10 -06:00
InsanityAutomation 59b18aaeef Allow resume from pause with parking enabled (#12893)
Currently, Pause of an SD-Memory card print does not work.    This has been verified to resolve the issue by multiple people.   

I understand more work needs to be done to resolve some of the concerns...
2019-01-15 07:58:54 -07:00
Giuliano Zaro 85f149befe Save some progmem (#12913) 2019-01-14 20:56:30 -06:00
mikeshub 7fde8d9d1e Add CreatorPro / Makerbot / QIDI / etc and Mightboard RevE support (#12855)
- Fix a bug in MAXxxxx thermocouple temp reporting.
- Add support for 3-wire HD44780.
- Add support for PCA9533 RGB driver.
- Add configuration examples for FlashForge CreatorPro.
2019-01-14 14:29:55 -06:00
Scott Lahteine 3644c940bf Tweak SD section of Main Menu 2019-01-13 18:00:07 -06:00
990 changed files with 186385 additions and 85510 deletions
+5 -5
View File
@@ -51,8 +51,8 @@ jobs:
export PATH=`pwd`/buildroot/bin/:${PATH}
# Generate custom version include
generate_version ./Marlin/
cat ./Marlin/Version.h
generate_version ./Marlin/src/inc
cat ./Marlin/src/inc/_Version.h
#
# Back up pins_RAMPS.h
#
@@ -240,10 +240,10 @@ jobs:
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing STM32F1 targets...
export TEST_PLATFORM="-e STM32F103RE"
export TEST_PLATFORM="-e STM32F1"
restore_configs
echo use_example_configs STM32/STM32F103RE
use_example_configs STM32/STM32F103RE
echo use_example_configs STM32/STM32F10
use_example_configs STM32/STM32F10
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs STM32/stm32f103ret6
+11 -42
View File
@@ -9,49 +9,18 @@ notifications:
email: false
env:
# Base Environments
- TEST_PLATFORM="DUE"
- TEST_PLATFORM="esp32"
- TEST_PLATFORM="linux_native"
- TEST_PLATFORM="megaatmega2560"
- TEST_PLATFORM="STM32F103RE"
- TEST_PLATFORM="teensy31"
- TEST_PLATFORM="teensy35"
# Extended AVR Environments
- TEST_PLATFORM="fysetc_f6_13"
- TEST_PLATFORM="megaatmega1280"
- TEST_PLATFORM="rambo"
- TEST_PLATFORM="sanguino_atmega1284p"
- TEST_PLATFORM="sanguino_atmega644p"
# Extended STM32 Environments
- TEST_PLATFORM="ARMED"
- TEST_PLATFORM="BIGTREE_BTT002"
- TEST_PLATFORM="BIGTREE_SKR_PRO"
- TEST_PLATFORM="STM32F103RC_bigtree"
- TEST_PLATFORM="jgaurora_a5s_a1"
- TEST_PLATFORM="STM32F103VE_longer"
- TEST_PLATFORM="STM32F407VE_black"
- TEST_PLATFORM="mks_robin"
# Put lengthy tests last
- TEST_PLATFORM="DUE"
- TEST_PLATFORM="LPC1768"
- TEST_PLATFORM="LPC1769"
# Non-working environment tests
#- TEST_PLATFORM="at90usb1286_cdc"
#- TEST_PLATFORM="at90usb1286_dfu"
#- TEST_PLATFORM="STM32F103CB_malyan"
#- TEST_PLATFORM="mks_robin_lite"
#- TEST_PLATFORM="mks_robin_mini"
#- TEST_PLATFORM="mks_robin_nano"
#- TEST_PLATFORM="SAMD51_grandcentral_m4"
#- TEST_PLATFORM="STM32F103RC_bigtree"
#- TEST_PLATFORM="STM32F103RC_bigtree_USB"
#- TEST_PLATFORM="STM32F103RC_fysetc"
#- TEST_PLATFORM="STM32F4"
#- TEST_PLATFORM="STM32F7"
- TEST_PLATFORM="STM32F1"
- TEST_PLATFORM="teensy31"
- TEST_PLATFORM="teensy35"
- TEST_PLATFORM="linux_native"
- TEST_PLATFORM="esp32"
- TEST_PLATFORM="alfawise_U20"
- TEST_PLATFORM="black_stm32f407ve"
- TEST_PLATFORM="adafruit_grandcentral_m4"
before_install:
#
@@ -75,8 +44,8 @@ before_script:
- cd ${TRAVIS_BUILD_DIR}
#
# Generate custom version include
- generate_version ${TRAVIS_BUILD_DIR}/Marlin/
- cat ${TRAVIS_BUILD_DIR}/Marlin/Version.h
- generate_version ${TRAVIS_BUILD_DIR}/Marlin/src/inc
- cat ${TRAVIS_BUILD_DIR}/Marlin/src/inc/_Version.h
#
script:
- run_tests ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
Binary file not shown.
Binary file not shown.
+9606
View File
File diff suppressed because it is too large Load Diff
+11403
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+11598
View File
File diff suppressed because it is too large Load Diff
+1006 -308
View File
File diff suppressed because it is too large Load Diff
+298 -428
View File
File diff suppressed because it is too large Load Diff
+19 -25
View File
@@ -251,10 +251,6 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1141)
else ifeq ($(HARDWARE_MOTHERBOARD),1142)
# Overlord/Overlord Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1143)
# ADIMLab Gantry v1
else ifeq ($(HARDWARE_MOTHERBOARD),1144)
# ADIMLab Gantry v2
else ifeq ($(HARDWARE_MOTHERBOARD),1145)
#
# RAMBo and derivatives
@@ -281,44 +277,42 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1205)
else ifeq ($(HARDWARE_MOTHERBOARD),1300)
# Cartesio CN Controls V12
else ifeq ($(HARDWARE_MOTHERBOARD),1301)
# Cartesio CN Controls V15
else ifeq ($(HARDWARE_MOTHERBOARD),1302)
# Cheaptronic v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1303)
else ifeq ($(HARDWARE_MOTHERBOARD),1302)
# Cheaptronic v2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1304)
else ifeq ($(HARDWARE_MOTHERBOARD),1303)
# Makerbot Mightyboard Revision E
else ifeq ($(HARDWARE_MOTHERBOARD),1305)
else ifeq ($(HARDWARE_MOTHERBOARD),1304)
# Megatronics
else ifeq ($(HARDWARE_MOTHERBOARD),1306)
else ifeq ($(HARDWARE_MOTHERBOARD),1305)
# Megatronics v2.0
else ifeq ($(HARDWARE_MOTHERBOARD),1307)
else ifeq ($(HARDWARE_MOTHERBOARD),1306)
# Megatronics v3.0
else ifeq ($(HARDWARE_MOTHERBOARD),1308)
else ifeq ($(HARDWARE_MOTHERBOARD),1307)
# Megatronics v3.1
else ifeq ($(HARDWARE_MOTHERBOARD),1309)
else ifeq ($(HARDWARE_MOTHERBOARD),1308)
# Megatronics v3.2
else ifeq ($(HARDWARE_MOTHERBOARD),1310)
else ifeq ($(HARDWARE_MOTHERBOARD),1309)
# Elefu Ra Board (v3)
else ifeq ($(HARDWARE_MOTHERBOARD),1311)
else ifeq ($(HARDWARE_MOTHERBOARD),1310)
# Leapfrog
else ifeq ($(HARDWARE_MOTHERBOARD),1312)
else ifeq ($(HARDWARE_MOTHERBOARD),1311)
# Mega controller
else ifeq ($(HARDWARE_MOTHERBOARD),1313)
else ifeq ($(HARDWARE_MOTHERBOARD),1312)
# Geeetech GT2560 Rev B for Mecreator2
else ifeq ($(HARDWARE_MOTHERBOARD),1314)
else ifeq ($(HARDWARE_MOTHERBOARD),1313)
# Geeetech GT2560 Rev. A
else ifeq ($(HARDWARE_MOTHERBOARD),1315)
else ifeq ($(HARDWARE_MOTHERBOARD),1314)
# Geeetech GT2560 Rev. A+ (with auto level probe)
else ifeq ($(HARDWARE_MOTHERBOARD),1316)
else ifeq ($(HARDWARE_MOTHERBOARD),1315)
# Geeetech GT2560 Rev B for A10(M/D)
else ifeq ($(HARDWARE_MOTHERBOARD),1317)
else ifeq ($(HARDWARE_MOTHERBOARD),1316)
# Geeetech GT2560 Rev B for A20(M/D)
else ifeq ($(HARDWARE_MOTHERBOARD),1318)
else ifeq ($(HARDWARE_MOTHERBOARD),1317)
# Einstart retrofit
else ifeq ($(HARDWARE_MOTHERBOARD),1319)
else ifeq ($(HARDWARE_MOTHERBOARD),1318)
# Wanhao 0ne+ i3 Mini
else ifeq ($(HARDWARE_MOTHERBOARD),1320)
else ifeq ($(HARDWARE_MOTHERBOARD),1319)
#
# ATmega1281, ATmega2561
@@ -693,7 +687,7 @@ CXXSTANDARD = -std=gnu++11
CDEBUG = -g$(DEBUG)
CWARN = -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
CXXWARN = -Wall -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
CTUNING = -fsigned-char -funsigned-bitfields -fno-exceptions \
CTUNING = -fsigned-char -funsigned-bitfields -fpack-struct -fno-exceptions \
-fshort-enums -ffunction-sections -fdata-sections
ifneq ($(HARDWARE_MOTHERBOARD),)
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
-76
View File
@@ -1,76 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
////////////////////////////
// VENDOR VERSION EXAMPLE //
////////////////////////////
/**
* Marlin release version identifier
*/
#define SHORT_BUILD_VERSION "2.0.x_SX4I"
/**
* Verbose version identifier which should contain a reference to the location
* from where the binary was downloaded or the source code was compiled.
*/
#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " TM3D"
/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define STRING_DISTRIBUTION_DATE "2019-10-19"
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
*/
#define MACHINE_NAME "TM3D SX4"
/**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
* Code which is installed on the device. In most cases —unless the manufacturer
* has a distinct Github fork— the Source Code URL should just be the main
* Marlin repository.
*/
#define SOURCE_CODE_URL "https://github.com/InsanityAutomation/Marlin/tree/TM_SX4_2.0"
/**
* Default generic printer UUID.
*/
//#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff"
/**
* The WEBSITE_URL is the location where users can get more information such as
* documentation about a specific Marlin release.
*/
#define WEBSITE_URL "tinymachines3d.com"
/**
* Set the vendor info the serial USB interface, if changable
* Currently only supported by DUE platform
*/
//#define USB_DEVICE_VENDOR_ID 0x0000
//#define USB_DEVICE_PRODUCT_ID 0x0000
//#define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL
+1
View File
@@ -29,6 +29,7 @@
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*/
#include <avr/pgmspace.h>
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 128
-6
View File
@@ -24,9 +24,3 @@
#include "platforms.h"
#include HAL_PATH(.,HAL.h)
inline void watchdog_refresh() {
#if ENABLED(USE_WATCHDOG)
HAL_watchdog_refresh();
#endif
}
+1 -1
View File
@@ -35,7 +35,7 @@
// Public functions
// ------------------------
void HAL_init() {
void HAL_init(void) {
// Init Servo Pins
#define INIT_SERVO(N) OUT_WRITE(SERVO##N##_PIN, LOW)
#if HAS_SERVO_0
+16 -15
View File
@@ -105,19 +105,19 @@ typedef int8_t pin_t;
// Public functions
// ------------------------
void HAL_init();
void HAL_init(void);
//void cli();
//void cli(void);
//void _delay_ms(const int delay);
inline void HAL_clear_reset_source() { MCUSR = 0; }
inline uint8_t HAL_get_reset_source() { return MCUSR; }
inline void HAL_clear_reset_source(void) { MCUSR = 0; }
inline uint8_t HAL_get_reset_source(void) { return MCUSR; }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
extern "C" {
int freeMemory();
int freeMemory(void);
}
#pragma GCC diagnostic pop
@@ -146,7 +146,8 @@ extern "C" {
#define DISABLE_TEMPERATURE_INTERRUPT() CBI(TIMSK0, OCIE0B)
#define TEMPERATURE_ISR_ENABLED() TEST(TIMSK0, OCIE0B)
FORCE_INLINE void HAL_timer_start(const uint8_t timer_num, const uint32_t) {
FORCE_INLINE void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
UNUSED(frequency);
switch (timer_num) {
case STEP_TIMER_NUM:
// waveform generation = 0100 = CTC
@@ -198,9 +199,9 @@ FORCE_INLINE void HAL_timer_start(const uint8_t timer_num, const uint32_t) {
/* 18 cycles maximum latency */
#define HAL_STEP_TIMER_ISR() \
extern "C" void TIMER1_COMPA_vect() __attribute__ ((signal, naked, used, externally_visible)); \
extern "C" void TIMER1_COMPA_vect_bottom() asm ("TIMER1_COMPA_vect_bottom") __attribute__ ((used, externally_visible, noinline)); \
void TIMER1_COMPA_vect() { \
extern "C" void TIMER1_COMPA_vect (void) __attribute__ ((signal, naked, used, externally_visible)); \
extern "C" void TIMER1_COMPA_vect_bottom (void) asm ("TIMER1_COMPA_vect_bottom") __attribute__ ((used, externally_visible, noinline)); \
void TIMER1_COMPA_vect (void) { \
__asm__ __volatile__ ( \
A("push r16") /* 2 Save R16 */ \
A("in r16, __SREG__") /* 1 Get SREG */ \
@@ -267,13 +268,13 @@ void TIMER1_COMPA_vect() { \
: \
); \
} \
void TIMER1_COMPA_vect_bottom()
void TIMER1_COMPA_vect_bottom(void)
/* 14 cycles maximum latency */
#define HAL_TEMP_TIMER_ISR() \
extern "C" void TIMER0_COMPB_vect() __attribute__ ((signal, naked, used, externally_visible)); \
extern "C" void TIMER0_COMPB_vect_bottom() asm ("TIMER0_COMPB_vect_bottom") __attribute__ ((used, externally_visible, noinline)); \
void TIMER0_COMPB_vect() { \
extern "C" void TIMER0_COMPB_vect (void) __attribute__ ((signal, naked, used, externally_visible)); \
extern "C" void TIMER0_COMPB_vect_bottom(void) asm ("TIMER0_COMPB_vect_bottom") __attribute__ ((used, externally_visible, noinline)); \
void TIMER0_COMPB_vect (void) { \
__asm__ __volatile__ ( \
A("push r16") /* 2 Save R16 */ \
A("in r16, __SREG__") /* 1 Get SREG */ \
@@ -333,7 +334,7 @@ void TIMER0_COMPB_vect() { \
: \
); \
} \
void TIMER0_COMPB_vect_bottom()
void TIMER0_COMPB_vect_bottom(void)
// ADC
#ifdef DIDR2
@@ -342,7 +343,7 @@ void TIMER0_COMPB_vect_bottom()
#define HAL_ANALOG_SELECT(pin) do{ SBI(DIDR0, pin); }while(0)
#endif
inline void HAL_adc_init() {
inline void HAL_adc_init(void) {
ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADIF) | 0x07;
DIDR0 = 0;
#ifdef DIDR2
+9 -4
View File
@@ -33,7 +33,7 @@
#include "../../inc/MarlinConfig.h"
void spiBegin() {
void spiBegin(void) {
OUT_WRITE(SS_PIN, HIGH);
SET_OUTPUT(SCK_PIN);
SET_INPUT(MISO_PIN);
@@ -81,7 +81,7 @@ void spiBegin() {
}
/** SPI receive a byte */
uint8_t spiRec() {
uint8_t spiRec(void) {
SPDR = 0xFF;
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
return SPDR;
@@ -184,10 +184,15 @@ void spiBegin() {
// nop to tune soft SPI timing
#define nop asm volatile ("\tnop\n")
void spiInit(uint8_t) { /* do nothing */ }
// Set SPI rate
void spiInit(uint8_t spiRate) {
UNUSED(spiRate); // nothing to do
}
// Begin SPI transaction, set clock, bit order, data mode
void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) { /* do nothing */ }
void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) {
UNUSED(spiBeginTransaction); // nothing to do
}
// Soft SPI receive byte
uint8_t spiRec() {
+7 -7
View File
@@ -271,7 +271,7 @@
// (called with TX irqs disabled)
template<typename Cfg>
FORCE_INLINE void MarlinSerial<Cfg>::_tx_udr_empty_irq() {
FORCE_INLINE void MarlinSerial<Cfg>::_tx_udr_empty_irq(void) {
if (Cfg::TX_SIZE > 0) {
// Read positions
uint8_t t = tx_buffer.tail;
@@ -363,13 +363,13 @@
}
template<typename Cfg>
int MarlinSerial<Cfg>::peek() {
int MarlinSerial<Cfg>::peek(void) {
const ring_buffer_pos_t h = atomic_read_rx_head(), t = rx_buffer.tail;
return h == t ? -1 : rx_buffer.buffer[t];
}
template<typename Cfg>
int MarlinSerial<Cfg>::read() {
int MarlinSerial<Cfg>::read(void) {
const ring_buffer_pos_t h = atomic_read_rx_head();
// Read the tail. Main thread owns it, so it is safe to directly read it
@@ -412,13 +412,13 @@
}
template<typename Cfg>
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available() {
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available(void) {
const ring_buffer_pos_t h = atomic_read_rx_head(), t = rx_buffer.tail;
return (ring_buffer_pos_t)(Cfg::RX_SIZE + h - t) & (Cfg::RX_SIZE - 1);
}
template<typename Cfg>
void MarlinSerial<Cfg>::flush() {
void MarlinSerial<Cfg>::flush(void) {
// Set the tail to the head:
// - Read the RX head index in a safe way. (See atomic_read_rx_head.)
@@ -505,7 +505,7 @@
}
template<typename Cfg>
void MarlinSerial<Cfg>::flushTX() {
void MarlinSerial<Cfg>::flushTX(void) {
if (Cfg::TX_SIZE == 0) {
// No bytes written, no need to flush. This special case is needed since there's
@@ -595,7 +595,7 @@
}
template<typename Cfg>
void MarlinSerial<Cfg>::println() {
void MarlinSerial<Cfg>::println(void) {
print('\r');
print('\n');
}
+7 -7
View File
@@ -205,18 +205,18 @@
public:
FORCE_INLINE static void store_rxd_char();
FORCE_INLINE static void _tx_udr_empty_irq();
FORCE_INLINE static void _tx_udr_empty_irq(void);
public:
MarlinSerial() {};
static void begin(const long);
static void end();
static int peek();
static int read();
static void flush();
static ring_buffer_pos_t available();
static int peek(void);
static int read(void);
static void flush(void);
static ring_buffer_pos_t available(void);
static void write(const uint8_t c);
static void flushTX();
static void flushTX(void);
FORCE_INLINE static uint8_t dropped() { return Cfg::DROPPED_RX ? rx_dropped_bytes : 0; }
FORCE_INLINE static uint8_t buffer_overruns() { return Cfg::RX_OVERRUNS ? rx_buffer_overruns : 0; }
@@ -245,7 +245,7 @@
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println();
static void println(void);
operator bool() { return true; }
private:
+1 -1
View File
@@ -131,7 +131,7 @@ void initISR(timer16_Sequence_t timer) {
TCCR1A = 0; // normal counting mode
TCCR1B = _BV(CS11); // set prescaler of 8
TCNT1 = 0; // clear the timer count
#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__)
#if defined(__AVR_ATmega8__)|| defined(__AVR_ATmega128__)
SBI(TIFR, OCF1A); // clear any pending interrupts;
SBI(TIMSK, OCIE1A); // enable the output compare interrupt
#else
+50 -21
View File
@@ -41,7 +41,7 @@
#include <stdint.h>
// One ISR for all EXT-Interrupts
void endstop_ISR() { endstops.update(); }
void endstop_ISR(void) { endstops.update(); }
/**
* Patch for pins_arduino.h (...\Arduino\hardware\arduino\avr\variants\mega\pins_arduino.h)
@@ -102,124 +102,153 @@ void pciSetup(const int8_t pin) {
ISR(PCINT3_vect, ISR_ALIASOF(PCINT0_vect));
#endif
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
void setup_endstop_interrupts( void ) {
#if HAS_X_MAX
#if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X_MAX_PIN);
#if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT) // if pin has an external interrupt
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
#else
static_assert(digitalPinToPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable");
pciSetup(X_MAX_PIN);
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable"); // if pin has no pin change interrupt - error
pciSetup(X_MAX_PIN); // assign it
#endif
#endif
#if HAS_X_MIN
#if (digitalPinToInterrupt(X_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(X_MIN_PIN), "X_MIN_PIN is not interrupt-capable");
pciSetup(X_MIN_PIN);
#endif
#endif
#if HAS_Y_MAX
#if (digitalPinToInterrupt(Y_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Y_MAX_PIN), "Y_MAX_PIN is not interrupt-capable");
pciSetup(Y_MAX_PIN);
#endif
#endif
#if HAS_Y_MIN
#if (digitalPinToInterrupt(Y_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Y_MIN_PIN), "Y_MIN_PIN is not interrupt-capable");
pciSetup(Y_MIN_PIN);
#endif
#endif
#if HAS_Z_MAX
#if (digitalPinToInterrupt(Z_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z_MAX_PIN), "Z_MAX_PIN is not interrupt-capable");
pciSetup(Z_MAX_PIN);
#endif
#endif
#if HAS_Z_MIN
#if (digitalPinToInterrupt(Z_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z_MIN_PIN), "Z_MIN_PIN is not interrupt-capable");
pciSetup(Z_MIN_PIN);
#endif
#endif
#if HAS_X2_MAX
#if (digitalPinToInterrupt(X2_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X2_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(X2_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(X2_MAX_PIN), "X2_MAX_PIN is not interrupt-capable");
pciSetup(X2_MAX_PIN);
#endif
#endif
#if HAS_X2_MIN
#if (digitalPinToInterrupt(X2_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X2_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(X2_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(X2_MIN_PIN), "X2_MIN_PIN is not interrupt-capable");
pciSetup(X2_MIN_PIN);
#endif
#endif
#if HAS_Y2_MAX
#if (digitalPinToInterrupt(Y2_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y2_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Y2_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Y2_MAX_PIN), "Y2_MAX_PIN is not interrupt-capable");
pciSetup(Y2_MAX_PIN);
#endif
#endif
#if HAS_Y2_MIN
#if (digitalPinToInterrupt(Y2_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Y2_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Y2_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Y2_MIN_PIN), "Y2_MIN_PIN is not interrupt-capable");
pciSetup(Y2_MIN_PIN);
#endif
#endif
#if HAS_Z2_MAX
#if (digitalPinToInterrupt(Z2_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z2_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z2_MAX_PIN), "Z2_MAX_PIN is not interrupt-capable");
pciSetup(Z2_MAX_PIN);
#endif
#endif
#if HAS_Z2_MIN
#if (digitalPinToInterrupt(Z2_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z2_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z2_MIN_PIN), "Z2_MIN_PIN is not interrupt-capable");
pciSetup(Z2_MIN_PIN);
#endif
#endif
#if HAS_Z3_MAX
#if (digitalPinToInterrupt(Z3_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z3_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z3_MAX_PIN), "Z3_MAX_PIN is not interrupt-capable");
pciSetup(Z3_MAX_PIN);
#endif
#endif
#if HAS_Z3_MIN
#if (digitalPinToInterrupt(Z3_MIN_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z3_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z3_MIN_PIN), "Z3_MIN_PIN is not interrupt-capable");
pciSetup(Z3_MIN_PIN);
#endif
#endif
#if HAS_Z_MIN_PROBE_PIN
#if (digitalPinToInterrupt(Z_MIN_PROBE_PIN) != NOT_AN_INTERRUPT)
_ATTACH(Z_MIN_PROBE_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
#else
// Not all used endstop/probe -pins can raise interrupts. Please deactivate ENDSTOP_INTERRUPTS or change the pin configuration!
static_assert(digitalPinToPCICR(Z_MIN_PROBE_PIN), "Z_MIN_PROBE_PIN is not interrupt-capable");
pciSetup(Z_MIN_PROBE_PIN);
#endif
+16 -27
View File
@@ -23,7 +23,7 @@
#include "../../inc/MarlinConfigPre.h"
#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_PWM
#if ENABLED(FAST_PWM_FAN)
#include "HAL.h"
@@ -59,8 +59,8 @@ Timer get_pwm_timer(const pin_t pin) {
#ifdef TCCR2
case TIMER2: {
Timer timer = {
/*TCCRnQ*/ { &TCCR2, nullptr, nullptr },
/*OCRnQ*/ { (uint16_t*)&OCR2, nullptr, nullptr },
/*TCCRnQ*/ { &TCCR2, nullptr, nullptr},
/*OCRnQ*/ { (uint16_t*)&OCR2, nullptr, nullptr},
/*ICRn*/ nullptr,
/*n, q*/ 2, 0
};
@@ -70,8 +70,8 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER2A: break; // protect TIMER2A
case TIMER2B: {
Timer timer = {
/*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr },
/*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr },
/*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr},
/*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr},
/*ICRn*/ nullptr,
/*n, q*/ 2, 1
};
@@ -81,8 +81,8 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER2B: ++q;
case TIMER2A: {
Timer timer = {
/*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr },
/*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr },
/*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr},
/*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr},
/*ICRn*/ nullptr,
2, q
};
@@ -91,24 +91,13 @@ Timer get_pwm_timer(const pin_t pin) {
#endif
#endif
#endif
#ifdef OCR3C
#ifdef TCCR3A
case TIMER3C: ++q;
case TIMER3B: ++q;
case TIMER3A: {
Timer timer = {
/*TCCRnQ*/ { &TCCR3A, &TCCR3B, &TCCR3C },
/*OCRnQ*/ { &OCR3A, &OCR3B, &OCR3C },
/*ICRn*/ &ICR3,
/*n, q*/ 3, q
};
return timer;
}
#elif defined(OCR3B)
case TIMER3B: ++q;
case TIMER3A: {
Timer timer = {
/*TCCRnQ*/ { &TCCR3A, &TCCR3B, nullptr },
/*OCRnQ*/ { &OCR3A, &OCR3B, nullptr },
/*TCCRnQ*/ { &TCCR3A, &TCCR3B, &TCCR3C},
/*OCRnQ*/ { &OCR3A, &OCR3B, &OCR3C},
/*ICRn*/ &ICR3,
/*n, q*/ 3, q
};
@@ -120,8 +109,8 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER4B: ++q;
case TIMER4A: {
Timer timer = {
/*TCCRnQ*/ { &TCCR4A, &TCCR4B, &TCCR4C },
/*OCRnQ*/ { &OCR4A, &OCR4B, &OCR4C },
/*TCCRnQ*/ { &TCCR4A, &TCCR4B, &TCCR4C},
/*OCRnQ*/ { &OCR4A, &OCR4B, &OCR4C},
/*ICRn*/ &ICR4,
/*n, q*/ 4, q
};
@@ -133,7 +122,7 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER5B: ++q;
case TIMER5A: {
Timer timer = {
/*TCCRnQ*/ { &TCCR5A, &TCCR5B, &TCCR5C },
/*TCCRnQ*/ { &TCCR5A, &TCCR5B, &TCCR5C},
/*OCRnQ*/ { &OCR5A, &OCR5B, &OCR5C },
/*ICRn*/ &ICR5,
/*n, q*/ 5, q
@@ -143,8 +132,8 @@ Timer get_pwm_timer(const pin_t pin) {
#endif
}
Timer timer = {
/*TCCRnQ*/ { nullptr, nullptr, nullptr },
/*OCRnQ*/ { nullptr, nullptr, nullptr },
/*TCCRnQ*/ { nullptr, nullptr, nullptr},
/*OCRnQ*/ { nullptr, nullptr, nullptr},
/*ICRn*/ nullptr,
0, 0
};
@@ -278,5 +267,5 @@ void set_pwm_duty(const pin_t pin, const uint16_t v, const uint16_t v_size/*=255
}
}
#endif // FAST_PWM_FAN || SPINDLE_LASER_PWM
#endif // FAST_PWM_FAN
#endif // __AVR__
+12 -3
View File
@@ -227,9 +227,18 @@ static void print_is_also_tied() { SERIAL_ECHOPGM(" is also tied to this pin");
void com_print(uint8_t N, uint8_t Z) {
const uint8_t *TCCRA = (uint8_t*)TCCR_A(N);
SERIAL_ECHOPGM(" COM");
SERIAL_CHAR('0' + N);
SERIAL_CHAR('A' + Z);
SERIAL_ECHOPAIR(": ", int((*TCCRA >> (6 - Z * 2)) & 0x03));
SERIAL_CHAR(N + '0');
switch (Z) {
case 'A':
SERIAL_ECHOPAIR("A: ", ((*TCCRA & (_BV(7) | _BV(6))) >> 6));
break;
case 'B':
SERIAL_ECHOPAIR("B: ", ((*TCCRA & (_BV(5) | _BV(4))) >> 4));
break;
case 'C':
SERIAL_ECHOPAIR("C: ", ((*TCCRA & (_BV(3) | _BV(2))) >> 2));
break;
}
}
void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N - WGM bit layout
+1 -1
View File
@@ -28,4 +28,4 @@ void watchdog_init();
// Reset watchdog. MUST be called at least every 4 seconds after the
// first watchdog_init or AVR will go into emergency procedures.
inline void HAL_watchdog_refresh() { wdt_reset(); }
inline void watchdog_reset() { wdt_reset(); }
+9 -9
View File
@@ -42,7 +42,7 @@
#define sw_barrier() __asm__ volatile("": : :"memory");
// (re)initialize UART0 as a monitor output to 250000,n,8,1
static void TXBegin() {
static void TXBegin(void) {
// Disable UART interrupt in NVIC
NVIC_DisableIRQ( UART_IRQn );
@@ -235,7 +235,7 @@ void HardFault_HandlerC(unsigned long *sp, unsigned long lr, unsigned long cause
for (;;) WDT_Restart(WDT);
}
__attribute__((naked)) void NMI_Handler() {
__attribute__((naked)) void NMI_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -248,7 +248,7 @@ __attribute__((naked)) void NMI_Handler() {
);
}
__attribute__((naked)) void HardFault_Handler() {
__attribute__((naked)) void HardFault_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -261,7 +261,7 @@ __attribute__((naked)) void HardFault_Handler() {
);
}
__attribute__((naked)) void MemManage_Handler() {
__attribute__((naked)) void MemManage_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -274,7 +274,7 @@ __attribute__((naked)) void MemManage_Handler() {
);
}
__attribute__((naked)) void BusFault_Handler() {
__attribute__((naked)) void BusFault_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -287,7 +287,7 @@ __attribute__((naked)) void BusFault_Handler() {
);
}
__attribute__((naked)) void UsageFault_Handler() {
__attribute__((naked)) void UsageFault_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -300,7 +300,7 @@ __attribute__((naked)) void UsageFault_Handler() {
);
}
__attribute__((naked)) void DebugMon_Handler() {
__attribute__((naked)) void DebugMon_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -314,7 +314,7 @@ __attribute__((naked)) void DebugMon_Handler() {
}
/* This is NOT an exception, it is an interrupt handler - Nevertheless, the framing is the same */
__attribute__((naked)) void WDT_Handler() {
__attribute__((naked)) void WDT_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -327,7 +327,7 @@ __attribute__((naked)) void WDT_Handler() {
);
}
__attribute__((naked)) void RSTC_Handler() {
__attribute__((naked)) void RSTC_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
+6 -4
View File
@@ -922,7 +922,8 @@ static void ee_Init() {
if (!ee_IsPageClean(grp * PagesPerGroup + page)) {
#ifdef EE_EMU_DEBUG
SERIAL_ECHO_START();
SERIAL_ECHOLNPAIR("EEPROM Page ", page, " not clean on group ", grp);
SERIAL_ECHOPAIR("EEPROM Page ",page);
SERIAL_ECHOLNPAIR(" not clean on group ",grp);
SERIAL_FLUSH();
#endif
ee_PageErase(grp * PagesPerGroup + page);
@@ -943,7 +944,7 @@ static void ee_Init() {
#ifdef EE_EMU_DEBUG
SERIAL_ECHO_START();
SERIAL_ECHOLNPAIR("EEPROM Active page: ", curPage);
SERIAL_ECHOLNPAIR("EEPROM Active page: ",curPage);
SERIAL_FLUSH();
#endif
@@ -952,7 +953,8 @@ static void ee_Init() {
if (!ee_IsPageClean(curGroup * PagesPerGroup + page)) {
#ifdef EE_EMU_DEBUG
SERIAL_ECHO_START();
SERIAL_ECHOLNPAIR("EEPROM Page ", page, " not clean on active group ", curGroup);
SERIAL_ECHOPAIR("EEPROM Page ",page);
SERIAL_ECHOLNPAIR(" not clean on active group ",curGroup);
SERIAL_FLUSH();
ee_Dump(curGroup * PagesPerGroup + page, getFlashStorage(curGroup * PagesPerGroup + page));
#endif
@@ -991,7 +993,7 @@ void eeprom_read_block(void* __dst, const void* __src, size_t __n) {
}
}
void eeprom_flush() {
void eeprom_flush(void) {
ee_Flush();
}
+8 -8
View File
@@ -42,7 +42,7 @@ uint16_t HAL_adc_result;
// ------------------------
// HAL initialization task
void HAL_init() {
void HAL_init(void) {
// Initialize the USB stack
#if ENABLED(SDSUPPORT)
OUT_WRITE(SDSS, HIGH); // Try to set SDSS inactive before any other SPI users start up
@@ -51,20 +51,20 @@ void HAL_init() {
}
// HAL idle task
void HAL_idletask() {
void HAL_idletask(void) {
// Perform USB stack housekeeping
usb_task_idle();
}
// Disable interrupts
void cli() { noInterrupts(); }
void cli(void) { noInterrupts(); }
// Enable interrupts
void sei() { interrupts(); }
void sei(void) { interrupts(); }
void HAL_clear_reset_source() { }
void HAL_clear_reset_source(void) { }
uint8_t HAL_get_reset_source() {
uint8_t HAL_get_reset_source(void) {
switch ((RSTC->RSTC_SR >> 8) & 0x07) {
case 0: return RST_POWER_ON;
case 1: return RST_BACKUP;
@@ -87,7 +87,7 @@ extern "C" {
// Return free memory between end of heap (or end bss) and whatever is current
int freeMemory() {
int free_memory, heap_end = (int)_sbrk(0);
return (int)&free_memory - (heap_end ?: (int)&_ebss);
return (int)&free_memory - (heap_end ? heap_end : (int)&_ebss);
}
// ------------------------
@@ -98,7 +98,7 @@ void HAL_adc_start_conversion(const uint8_t adc_pin) {
HAL_adc_result = analogRead(adc_pin);
}
uint16_t HAL_adc_get_result() {
uint16_t HAL_adc_get_result(void) {
// nop
return HAL_adc_result;
}
+20 -37
View File
@@ -38,39 +38,22 @@
#include <stdint.h>
// Define MYSERIAL0/1 before MarlinSerial includes!
#if SERIAL_PORT == -1
#define MYSERIAL0 Serial1
#elif SERIAL_PORT == 0
#define MYSERIAL0 Serial
#elif SERIAL_PORT == 1
#define MYSERIAL0 Serial1
#elif SERIAL_PORT == 2
#define MYSERIAL0 Serial2
#elif SERIAL_PORT == 3
#define MYSERIAL0 Serial3
#else
#error "The required SERIAL_PORT must be from -1 to 3. Please update your configuration."
// Serial ports
#if !WITHIN(SERIAL_PORT, -1, 3)
#error "SERIAL_PORT must be from -1 to 3"
#endif
// MYSERIAL0 required before MarlinSerial includes!
#define MYSERIAL0 customizedSerial1
#ifdef SERIAL_PORT_2
#if SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 must be different from SERIAL_PORT. Please update your configuration."
#endif
#if SERIAL_PORT_2 == -1
#define MYSERIAL1 Serial1
#elif SERIAL_PORT_2 == 0
#define MYSERIAL1 Serial
#elif SERIAL_PORT_2 == 1
#define MYSERIAL1 Serial1
#elif SERIAL_PORT_2 == 2
#define MYSERIAL1 Serial2
#elif SERIAL_PORT_2 == 3
#define MYSERIAL1 Serial3
#else
#error "SERIAL_PORT_2 must be from -1 to 3. Please update your configuration."
#if !WITHIN(SERIAL_PORT_2, -1, 3)
#error "SERIAL_PORT_2 must be from -1 to 3"
#elif SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 must be different than SERIAL_PORT"
#endif
#define NUM_SERIAL 2
#define MYSERIAL1 customizedSerial2
#else
#define NUM_SERIAL 1
#endif
@@ -105,11 +88,11 @@ typedef int8_t pin_t;
#define ENABLE_ISRS() __enable_irq()
#define DISABLE_ISRS() __disable_irq()
void cli(); // Disable interrupts
void sei(); // Enable interrupts
void cli(void); // Disable interrupts
void sei(void); // Enable interrupts
void HAL_clear_reset_source(); // clear reset reason
uint8_t HAL_get_reset_source(); // get reset reason
void HAL_clear_reset_source(void); // clear reset reason
uint8_t HAL_get_reset_source(void); // get reset reason
//
// EEPROM
@@ -130,14 +113,14 @@ extern uint16_t HAL_adc_result; // result of last ADC conversion
#define HAL_ANALOG_SELECT(pin)
inline void HAL_adc_init() {}//todo
inline void HAL_adc_init(void) {}//todo
#define HAL_START_ADC(pin) HAL_adc_start_conversion(pin)
#define HAL_READ_ADC() HAL_adc_result
#define HAL_ADC_READY() true
void HAL_adc_start_conversion(const uint8_t adc_pin);
uint16_t HAL_adc_get_result();
uint16_t HAL_adc_get_result(void);
//
// Pin Map
@@ -155,8 +138,8 @@ void noTone(const pin_t _pin);
// Enable hooks into idle and setup for HAL
#define HAL_IDLETASK 1
void HAL_idletask();
void HAL_init();
void HAL_idletask(void);
void HAL_init(void);
//
// Utility functions
@@ -165,7 +148,7 @@ void _delay_ms(const int delay);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
int freeMemory(void);
#pragma GCC diagnostic pop
#ifdef __cplusplus
+3 -2
View File
@@ -151,12 +151,13 @@
(((uint32_t)(addr) & 0xF0000000) + 0x02000000 + ((uint32_t)(addr)&0xFFFFF)*32 + (bit)*4)
// run at ~8 .. ~10Mhz - Rx version (Tx line not altered)
static uint8_t spiTransferRx0(uint8_t) { // using Mode 0
static uint8_t spiTransferRx0(uint8_t bout) { // using Mode 0
uint32_t bin = 0;
uint32_t work = 0;
uint32_t BITBAND_MISO_PORT = BITBAND_ADDRESS( ((uint32_t)PORT(MISO_PIN))+0x3C, PIN_SHIFT(MISO_PIN)); /* PDSR of port in bitband area */
uint32_t SCK_PORT_PLUS30 = ((uint32_t) PORT(SCK_PIN)) + 0x30; /* SODR of port */
uint32_t SCK_MASK = PIN_MASK(SCK_PIN);
UNUSED(bout);
/* The software SPI routine */
__asm__ __volatile__(
@@ -427,7 +428,7 @@
static void spiTxBlockX(const uint8_t* buf, uint32_t todo) {
do {
(void)spiTransferTx(*buf++);
(void) spiTransferTx(*buf++);
} while (--todo);
}
+1 -1
View File
@@ -48,7 +48,7 @@ static DeviceVectors ram_tab = { nullptr };
* If it is not, then it copies the ROM table to the SRAM and relocates the table
* by reprogramming the NVIC registers
*/
static pfnISR_Handler* get_relocated_table_addr() {
static pfnISR_Handler* get_relocated_table_addr(void) {
// Get the address of the interrupt/exception table
uint32_t isrtab = SCB->VTOR;
+1 -1
View File
@@ -37,7 +37,7 @@
#ifdef ARDUINO_ARCH_SAM
// ISR handler type
typedef void (*pfnISR_Handler)();
typedef void (*pfnISR_Handler)(void);
// Install a new interrupt vector handler for the given irq, returning the old one
pfnISR_Handler install_isr(IRQn_Type irq, pfnISR_Handler newHandler);
+8 -8
View File
@@ -178,7 +178,7 @@ FORCE_INLINE void MarlinSerial<Cfg>::store_rxd_char() {
}
template<typename Cfg>
FORCE_INLINE void MarlinSerial<Cfg>::_tx_thr_empty_irq() {
FORCE_INLINE void MarlinSerial<Cfg>::_tx_thr_empty_irq(void) {
if (Cfg::TX_SIZE > 0) {
// Read positions
uint8_t t = tx_buffer.tail;
@@ -221,7 +221,7 @@ FORCE_INLINE void MarlinSerial<Cfg>::_tx_thr_empty_irq() {
}
template<typename Cfg>
void MarlinSerial<Cfg>::UART_ISR() {
void MarlinSerial<Cfg>::UART_ISR(void) {
const uint32_t status = HWUART->UART_SR;
// Data received?
@@ -308,13 +308,13 @@ void MarlinSerial<Cfg>::end() {
}
template<typename Cfg>
int MarlinSerial<Cfg>::peek() {
int MarlinSerial<Cfg>::peek(void) {
const int v = rx_buffer.head == rx_buffer.tail ? -1 : rx_buffer.buffer[rx_buffer.tail];
return v;
}
template<typename Cfg>
int MarlinSerial<Cfg>::read() {
int MarlinSerial<Cfg>::read(void) {
const ring_buffer_pos_t h = rx_buffer.head;
ring_buffer_pos_t t = rx_buffer.tail;
@@ -354,13 +354,13 @@ int MarlinSerial<Cfg>::read() {
}
template<typename Cfg>
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available() {
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available(void) {
const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
return (ring_buffer_pos_t)(Cfg::RX_SIZE + h - t) & (Cfg::RX_SIZE - 1);
}
template<typename Cfg>
void MarlinSerial<Cfg>::flush() {
void MarlinSerial<Cfg>::flush(void) {
rx_buffer.tail = rx_buffer.head;
if (Cfg::XONOFF) {
@@ -431,7 +431,7 @@ void MarlinSerial<Cfg>::write(const uint8_t c) {
}
template<typename Cfg>
void MarlinSerial<Cfg>::flushTX() {
void MarlinSerial<Cfg>::flushTX(void) {
// TX
if (Cfg::TX_SIZE == 0) {
@@ -520,7 +520,7 @@ void MarlinSerial<Cfg>::print(double n, int digits) {
}
template<typename Cfg>
void MarlinSerial<Cfg>::println() {
void MarlinSerial<Cfg>::println(void) {
print('\r');
print('\n');
}
+8 -8
View File
@@ -108,19 +108,19 @@ protected:
static ring_buffer_pos_t rx_max_enqueued;
FORCE_INLINE static void store_rxd_char();
FORCE_INLINE static void _tx_thr_empty_irq();
static void UART_ISR();
FORCE_INLINE static void _tx_thr_empty_irq(void);
static void UART_ISR(void);
public:
MarlinSerial() {};
static void begin(const long);
static void end();
static int peek();
static int read();
static void flush();
static ring_buffer_pos_t available();
static int peek(void);
static int read(void);
static void flush(void);
static ring_buffer_pos_t available(void);
static void write(const uint8_t c);
static void flushTX();
static void flushTX(void);
FORCE_INLINE static uint8_t dropped() { return Cfg::DROPPED_RX ? rx_dropped_bytes : 0; }
FORCE_INLINE static uint8_t buffer_overruns() { return Cfg::RX_OVERRUNS ? rx_buffer_overruns : 0; }
@@ -149,7 +149,7 @@ public:
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println();
static void println(void);
operator bool() { return true; }
private:
+16 -13
View File
@@ -39,11 +39,11 @@
// Imports from Atmel USB Stack/CDC implementation
extern "C" {
bool usb_task_cdc_isenabled();
bool usb_task_cdc_dtr_active();
bool udi_cdc_is_rx_ready();
int udi_cdc_getc();
bool udi_cdc_is_tx_ready();
bool usb_task_cdc_isenabled(void);
bool usb_task_cdc_dtr_active(void);
bool udi_cdc_is_rx_ready(void);
int udi_cdc_getc(void);
bool udi_cdc_is_tx_ready(void);
int udi_cdc_putc(int value);
};
@@ -55,11 +55,14 @@ static int pending_char = -1;
#endif
// Public Methods
void MarlinSerialUSB::begin(const long) {}
void MarlinSerialUSB::begin(const long baud_setting) {
UNUSED(baud_setting);
}
void MarlinSerialUSB::end() {}
void MarlinSerialUSB::end() {
}
int MarlinSerialUSB::peek() {
int MarlinSerialUSB::peek(void) {
if (pending_char >= 0)
return pending_char;
@@ -80,7 +83,7 @@ int MarlinSerialUSB::peek() {
return pending_char;
}
int MarlinSerialUSB::read() {
int MarlinSerialUSB::read(void) {
if (pending_char >= 0) {
int ret = pending_char;
pending_char = -1;
@@ -104,7 +107,7 @@ int MarlinSerialUSB::read() {
return c;
}
bool MarlinSerialUSB::available() {
bool MarlinSerialUSB::available(void) {
/* If Pending chars */
return pending_char >= 0 ||
/* or USB CDC enumerated and configured on the PC side and some
@@ -112,8 +115,8 @@ bool MarlinSerialUSB::available() {
(usb_task_cdc_isenabled() && udi_cdc_is_rx_ready());
}
void MarlinSerialUSB::flush() { }
void MarlinSerialUSB::flushTX() { }
void MarlinSerialUSB::flush(void) { }
void MarlinSerialUSB::flushTX(void) { }
void MarlinSerialUSB::write(const uint8_t c) {
@@ -183,7 +186,7 @@ void MarlinSerialUSB::print(double n, int digits) {
printFloat(n, digits);
}
void MarlinSerialUSB::println() {
void MarlinSerialUSB::println(void) {
print('\r');
print('\n');
}
+6 -6
View File
@@ -43,11 +43,11 @@ public:
MarlinSerialUSB() {};
static void begin(const long);
static void end();
static int peek();
static int read();
static void flush();
static void flushTX();
static bool available();
static int peek(void);
static int read(void);
static void flush(void);
static void flushTX(void);
static bool available(void);
static void write(const uint8_t c);
#if ENABLED(SERIAL_STATS_DROPPED_RX)
@@ -80,7 +80,7 @@ public:
static void println(long, int = DEC);
static void println(unsigned long, int = DEC);
static void println(double, int = 2);
static void println();
static void println(void);
operator bool() { return true; }
private:
+5 -5
View File
@@ -56,19 +56,19 @@ static volatile int8_t Channel[_Nbr_16timers]; // counter for the s
void Servo_Handler(timer16_Sequence_t timer, Tc *pTc, uint8_t channel);
#ifdef _useTimer1
void HANDLER_FOR_TIMER1() { Servo_Handler(_timer1, TC_FOR_TIMER1, CHANNEL_FOR_TIMER1); }
void HANDLER_FOR_TIMER1(void) { Servo_Handler(_timer1, TC_FOR_TIMER1, CHANNEL_FOR_TIMER1); }
#endif
#ifdef _useTimer2
void HANDLER_FOR_TIMER2() { Servo_Handler(_timer2, TC_FOR_TIMER2, CHANNEL_FOR_TIMER2); }
void HANDLER_FOR_TIMER2(void) { Servo_Handler(_timer2, TC_FOR_TIMER2, CHANNEL_FOR_TIMER2); }
#endif
#ifdef _useTimer3
void HANDLER_FOR_TIMER3() { Servo_Handler(_timer3, TC_FOR_TIMER3, CHANNEL_FOR_TIMER3); }
void HANDLER_FOR_TIMER3(void) { Servo_Handler(_timer3, TC_FOR_TIMER3, CHANNEL_FOR_TIMER3); }
#endif
#ifdef _useTimer4
void HANDLER_FOR_TIMER4() { Servo_Handler(_timer4, TC_FOR_TIMER4, CHANNEL_FOR_TIMER4); }
void HANDLER_FOR_TIMER4(void) { Servo_Handler(_timer4, TC_FOR_TIMER4, CHANNEL_FOR_TIMER4); }
#endif
#ifdef _useTimer5
void HANDLER_FOR_TIMER5() { Servo_Handler(_timer5, TC_FOR_TIMER5, CHANNEL_FOR_TIMER5); }
void HANDLER_FOR_TIMER5(void) { Servo_Handler(_timer5, TC_FOR_TIMER5, CHANNEL_FOR_TIMER5); }
#endif
void Servo_Handler(timer16_Sequence_t timer, Tc *tc, uint8_t channel) {
+13 -14
View File
@@ -38,46 +38,45 @@
#include "../../module/endstops.h"
// One ISR for all EXT-Interrupts
void endstop_ISR() { endstops.update(); }
void endstop_ISR(void) { endstops.update(); }
/**
* Endstop interrupts for Due based targets.
* On Due, all pins support external interrupt capability.
*/
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
void setup_endstop_interrupts(void) {
#if HAS_X_MAX
_ATTACH(X_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
#endif
#if HAS_X_MIN
_ATTACH(X_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Y_MAX
_ATTACH(Y_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Y_MIN
_ATTACH(Y_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MAX
_ATTACH(Z_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MIN
_ATTACH(Z_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z2_MAX
_ATTACH(Z2_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z2_MIN
_ATTACH(Z2_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z3_MAX
_ATTACH(Z3_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z3_MIN
_ATTACH(Z3_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MIN_PROBE_PIN
_ATTACH(Z_MIN_PROBE_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
#endif
}
@@ -33,7 +33,7 @@
#define E2END 0xFFF // Default to Flash emulated EEPROM size (EepromEmulation_Due.cpp)
#endif
extern void eeprom_flush();
extern void eeprom_flush(void);
bool PersistentStore::access_start() { return true; }
+1 -1
View File
@@ -50,7 +50,7 @@ const tTimerConfig TimerConfig [NUM_HARDWARE_TIMERS] = {
{ TC0, 0, TC0_IRQn, 3}, // 0 - [servo timer5]
{ TC0, 1, TC1_IRQn, 0}, // 1
{ TC0, 2, TC2_IRQn, 2}, // 2 - stepper
{ TC1, 0, TC3_IRQn, 0}, // 3 - stepper for BOARD_ARCHIM1
{ TC1, 0, TC3_IRQn, 0}, // 3
{ TC1, 1, TC4_IRQn, 15}, // 4 - temperature
{ TC1, 2, TC5_IRQn, 3}, // 5 - [servo timer3]
{ TC2, 0, TC6_IRQn, 14}, // 6 - tone
+1 -5
View File
@@ -39,9 +39,7 @@ typedef uint32_t hal_timer_t;
#define HAL_TIMER_RATE ((F_CPU) / 2) // frequency of timers peripherals
#ifndef STEP_TIMER_NUM
#define STEP_TIMER_NUM 2 // index of timer to use for stepper
#endif
#define TEMP_TIMER_NUM 4 // index of timer to use for temperature
#define PULSE_TIMER_NUM STEP_TIMER_NUM
#define TONE_TIMER_NUM 6 // index of timer to use for beeper tones
@@ -63,9 +61,7 @@ typedef uint32_t hal_timer_t;
#define ENABLE_TEMPERATURE_INTERRUPT() HAL_timer_enable_interrupt(TEMP_TIMER_NUM)
#define DISABLE_TEMPERATURE_INTERRUPT() HAL_timer_disable_interrupt(TEMP_TIMER_NUM)
#ifndef HAL_STEP_TIMER_ISR
#define HAL_STEP_TIMER_ISR() void TC2_Handler()
#endif
#define HAL_STEP_TIMER_ISR() void TC2_Handler()
#define HAL_TEMP_TIMER_ISR() void TC4_Handler()
#define HAL_TONE_TIMER_ISR() void TC6_Handler()
+14 -1
View File
@@ -48,7 +48,9 @@
#define _CONF_USB_H_
#undef UNUSED /* To avoid a macro clash as macros.h already defines it */
#include "../../../inc/MarlinConfigPre.h"
#include "../../../core/macros.h" /* For ENABLED()/DISABLED() */
#include "../../../core/boards.h" /* For MB() */
#include "../../../../Configuration.h" /* For CUSTOM_MACHINE_NAME definition - We just need the name, no C++ allowed! */
#include "compiler.h"
/**
@@ -57,6 +59,8 @@
*/
//! Device definition (mandatory)
#define USB_DEVICE_VENDOR_ID 0x03EB /* ATMEL VID */
#define USB_DEVICE_PRODUCT_ID 0x2424 /* MSC / CDC */
#define USB_DEVICE_MAJOR_VERSION 1
#define USB_DEVICE_MINOR_VERSION 0
#define USB_DEVICE_POWER 100 // Consumption on Vbus line (mA)
@@ -66,6 +70,15 @@
// (USB_CONFIG_ATTR_REMOTE_WAKEUP|USB_CONFIG_ATTR_SELF_POWERED)
// (USB_CONFIG_ATTR_REMOTE_WAKEUP|USB_CONFIG_ATTR_BUS_POWERED)
//! USB Device string definitions (Optional)
#define USB_DEVICE_MANUFACTURE_NAME "marlinfw.org"
#ifdef CUSTOM_MACHINE_NAME
#define USB_DEVICE_PRODUCT_NAME CUSTOM_MACHINE_NAME
#else
#define USB_DEVICE_PRODUCT_NAME "3D Printer"
#endif
#define USB_DEVICE_SERIAL_NAME "123985739853"
/**
* Device speeds support
* Low speed not supported by CDC and MSC
+17 -10
View File
@@ -15,11 +15,11 @@ extern "C" {
#define SD_MMC_BLOCK_SIZE 512
void sd_mmc_spi_mem_init() {
void sd_mmc_spi_mem_init(void) {
}
Ctrl_status sd_mmc_spi_test_unit_ready() {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
Ctrl_status sd_mmc_spi_test_unit_ready(void) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
return CTRL_NO_PRESENT;
return CTRL_GOOD;
}
@@ -27,18 +27,25 @@ Ctrl_status sd_mmc_spi_test_unit_ready() {
// NOTE: This function is defined as returning the address of the last block
// in the card, which is cardSize() - 1
Ctrl_status sd_mmc_spi_read_capacity(uint32_t *nb_sector) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
return CTRL_NO_PRESENT;
*nb_sector = card.getSd2Card().cardSize() - 1;
return CTRL_GOOD;
}
bool sd_mmc_spi_unload(bool) { return true; }
bool sd_mmc_spi_unload(bool unload) {
UNUSED(unload);
return true;
}
bool sd_mmc_spi_wr_protect() { return false; }
bool sd_mmc_spi_wr_protect(void) {
return false;
}
bool sd_mmc_spi_removal() {
return (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted());
bool sd_mmc_spi_removal(void) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
return true;
return false;
}
#if ACCESS_USB == true
@@ -55,7 +62,7 @@ uint8_t sector_buf[SD_MMC_BLOCK_SIZE];
// #define DEBUG_MMC
Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
return CTRL_NO_PRESENT;
#ifdef DEBUG_MMC
@@ -92,7 +99,7 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
}
Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
return CTRL_NO_PRESENT;
#ifdef DEBUG_MMC
+3 -3
View File
@@ -94,11 +94,11 @@ typedef struct {
uint16_t payload_size;
//! Callback called after reception of ZLP from setup request
void (*callback)(void);
void (*callback) (void);
//! Callback called when the buffer given (.payload) is full or empty.
//! This one return false to abort data transfer, or true with a new buffer in .payload.
bool (*over_under_run)(void);
bool(*over_under_run) (void);
} udd_ctrl_request_t;
extern udd_ctrl_request_t udd_g_ctrlreq;
@@ -123,7 +123,7 @@ extern udd_ctrl_request_t udd_g_ctrlreq;
* Registered by routine udd_ep_wait_stall_clear()
* Callback called when endpoint stall is cleared.
*/
typedef void (*udd_callback_halt_cleared_t)(void);
typedef void (*udd_callback_halt_cleared_t) (void);
/**
* \brief End of transfer callback function type.
+5 -5
View File
@@ -82,7 +82,7 @@ typedef struct {
*
* \return \c 1 if function was successfully done, otherwise \c 0.
*/
bool (*enable)(void);
bool(*enable) (void);
/**
* \brief Disable the interface.
@@ -95,7 +95,7 @@ typedef struct {
* - the device is detached from the host (i.e. Vbus is no
* longer present)
*/
void (*disable)(void);
void (*disable) (void);
/**
* \brief Handle a control request directed at an interface.
@@ -108,7 +108,7 @@ typedef struct {
*
* \return \c 1 if this interface supports the SETUP request, otherwise \c 0.
*/
bool (*setup)(void);
bool(*setup) (void);
/**
* \brief Returns the current setting of the selected interface.
@@ -117,12 +117,12 @@ typedef struct {
*
* \return alternate setting of selected interface
*/
uint8_t (*getsetting)(void);
uint8_t(*getsetting) (void);
/**
* \brief To signal that a SOF is occurred
*/
void (*sof_notify)(void);
void(*sof_notify) (void);
} udi_api_t;
//@}
+2 -2
View File
@@ -32,7 +32,7 @@
// process, because watchdog initialization at hardware reset on SAM3X8E
// is unreliable, and there is risk of unintended resets if we delay
// that initialization to a later time.
void watchdogSetup() {
void watchdogSetup(void) {
#if ENABLED(USE_WATCHDOG)
@@ -106,7 +106,7 @@ void watchdogSetup() {
// Initialize watchdog - On SAM3X, Watchdog was already configured
// and enabled or disabled at startup, so no need to reconfigure it
// here.
void watchdog_init() {
void watchdog_init(void) {
// Reset watchdog to start clean
WDT_Restart(WDT);
}
+1 -1
View File
@@ -30,4 +30,4 @@ void watchdog_init();
// Reset watchdog. MUST be called at least every 4 seconds after the
// first watchdog_init or AVR will go into emergency procedures.
inline void HAL_watchdog_refresh() { watchdogReset(); }
inline void watchdog_reset() { watchdogReset(); }
@@ -29,7 +29,7 @@ class FlushableHardwareSerial : public HardwareSerial {
public:
FlushableHardwareSerial(int uart_nr);
inline void flushTX() { /* No need to flush the hardware serial, but defined here for compatibility. */ }
inline void flushTX(void) { /* No need to flush the hardware serial, but defined here for compatibility. */ }
};
extern FlushableHardwareSerial flushableSerial;
+10 -12
View File
@@ -78,11 +78,11 @@ volatile int numPWMUsed = 0,
// Public functions
// ------------------------
void HAL_init() {
void HAL_init(void) {
i2s_init();
}
void HAL_init_board() {
void HAL_init_board(void) {
#if EITHER(EEPROM_SETTINGS, WEBSUPPORT)
spiffs_init();
#endif
@@ -99,15 +99,15 @@ void HAL_init_board() {
#endif
}
void HAL_idletask() {
void HAL_idletask(void) {
#if ENABLED(OTASUPPORT)
OTA_handle();
#endif
}
void HAL_clear_reset_source() { }
void HAL_clear_reset_source(void) { }
uint8_t HAL_get_reset_source() { return rtc_get_reset_reason(1); }
uint8_t HAL_get_reset_source(void) { return rtc_get_reset_reason(1); }
void _delay_ms(int delay_ms) { delay(delay_ms); }
@@ -187,21 +187,19 @@ void HAL_adc_start_conversion(uint8_t adc_pin) {
const adc1_channel_t chan = get_channel(adc_pin);
uint32_t mv;
esp_adc_cal_get_voltage((adc_channel_t)chan, &characteristics[attenuations[chan]], &mv);
HAL_adc_result = mv * 1023.0 / 3300.0;
// Change the attenuation level based on the new reading
adc_atten_t atten;
if (mv < thresholds[ADC_ATTEN_DB_0] - 100)
atten = ADC_ATTEN_DB_0;
adc1_set_attenuation(chan, ADC_ATTEN_DB_0);
else if (mv > thresholds[ADC_ATTEN_DB_0] - 50 && mv < thresholds[ADC_ATTEN_DB_2_5] - 100)
atten = ADC_ATTEN_DB_2_5;
adc1_set_attenuation(chan, ADC_ATTEN_DB_2_5);
else if (mv > thresholds[ADC_ATTEN_DB_2_5] - 50 && mv < thresholds[ADC_ATTEN_DB_6] - 100)
atten = ADC_ATTEN_DB_6;
adc1_set_attenuation(chan, ADC_ATTEN_DB_6);
else if (mv > thresholds[ADC_ATTEN_DB_6] - 50)
atten = ADC_ATTEN_DB_11;
else return;
adc1_set_attenuation(chan, ADC_ATTEN_DB_11);
adc1_set_attenuation(chan, atten);
HAL_adc_result = mv * 1023.0 / 3300.0;
}
void analogWrite(pin_t pin, int value) {
+7 -7
View File
@@ -85,16 +85,16 @@ extern uint16_t HAL_adc_result;
// ------------------------
// clear reset reason
void HAL_clear_reset_source();
void HAL_clear_reset_source (void);
// reset reason
uint8_t HAL_get_reset_source();
uint8_t HAL_get_reset_source(void);
void _delay_ms(int delay);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
int freeMemory(void);
#pragma GCC diagnostic pop
void analogWrite(pin_t pin, int value);
@@ -108,7 +108,7 @@ void eeprom_update_block (const void *__src, void *__dst, size_t __n);
// ADC
#define HAL_ANALOG_SELECT(pin)
void HAL_adc_init();
void HAL_adc_init(void);
#define HAL_START_ADC(pin) HAL_adc_start_conversion(pin)
#define HAL_READ_ADC() HAL_adc_result
@@ -123,6 +123,6 @@ void HAL_adc_start_conversion(uint8_t adc_pin);
// Enable hooks into idle and setup for HAL
#define HAL_IDLETASK 1
#define BOARD_INIT() HAL_init_board();
void HAL_idletask();
void HAL_init();
void HAL_init_board();
void HAL_idletask(void);
void HAL_init(void);
void HAL_init_board(void);
+1 -1
View File
@@ -80,7 +80,7 @@ void spiInit(uint8_t spiRate) {
SPI.begin();
}
uint8_t spiRec() {
uint8_t spiRec(void) {
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
+14 -14
View File
@@ -32,25 +32,25 @@
int Servo::channel_next_free = 12;
Servo::Servo() {
channel = channel_next_free++;
this->channel = channel_next_free++;
}
int8_t Servo::attach(const int inPin) {
if (channel >= CHANNEL_MAX_NUM) return -1;
if (pin > 0) pin = inPin;
int8_t Servo::attach(const int pin) {
if (this->channel >= CHANNEL_MAX_NUM) return -1;
if (pin > 0) this->pin = pin;
ledcSetup(channel, 50, 16); // channel X, 50 Hz, 16-bit depth
ledcAttachPin(pin, channel);
ledcSetup(this->channel, 50, 16); // channel X, 50 Hz, 16-bit depth
ledcAttachPin(this->pin, this->channel);
return true;
}
void Servo::detach() { ledcDetachPin(pin); }
void Servo::detach() { ledcDetachPin(this->pin); }
int Servo::read() { return degrees; }
int Servo::read() { return this->degrees; }
void Servo::write(int inDegrees) {
degrees = constrain(inDegrees, MIN_ANGLE, MAX_ANGLE);
int us = map(degrees, MIN_ANGLE, MAX_ANGLE, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
this->degrees = constrain(inDegrees, MIN_ANGLE, MAX_ANGLE);
int us = map(this->degrees, MIN_ANGLE, MAX_ANGLE, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
int duty = map(us, 0, TAU_USEC, 0, MAX_COMPARE);
ledcWrite(channel, duty);
}
@@ -58,11 +58,11 @@ void Servo::write(int inDegrees) {
void Servo::move(const int value) {
constexpr uint16_t servo_delay[] = SERVO_DELAY;
static_assert(COUNT(servo_delay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM_SERVOS long.");
if (attach(0) >= 0) {
write(value);
safe_delay(servo_delay[channel]);
if (this->attach(0) >= 0) {
this->write(value);
safe_delay(servo_delay[this->channel]);
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
detach();
this->detach();
#endif
}
}
+9 -9
View File
@@ -66,15 +66,15 @@ ring_buffer_pos_t RingBuffer::write(const uint8_t *buffer, ring_buffer_pos_t siz
return written;
}
int RingBuffer::available() {
int RingBuffer::available(void) {
return (size - read_index + write_index) & (size - 1);
}
int RingBuffer::peek() {
int RingBuffer::peek(void) {
return available() ? data[read_index] : -1;
}
int RingBuffer::read() {
int RingBuffer::read(void) {
if (available()) {
const int ret = data[read_index];
read_index = NEXT_INDEX(read_index, size);
@@ -94,7 +94,7 @@ ring_buffer_pos_t RingBuffer::read(uint8_t *buffer) {
return len;
}
void RingBuffer::flush() { read_index = write_index; }
void RingBuffer::flush(void) { read_index = write_index; }
// WebSocketSerial impl
WebSocketSerial::WebSocketSerial()
@@ -120,10 +120,10 @@ void WebSocketSerial::begin(const long baud_setting) {
}
void WebSocketSerial::end() { }
int WebSocketSerial::peek() { return rx_buffer.peek(); }
int WebSocketSerial::read() { return rx_buffer.read(); }
int WebSocketSerial::available() { return rx_buffer.available(); }
void WebSocketSerial::flush() { rx_buffer.flush(); }
int WebSocketSerial::peek(void) { return rx_buffer.peek(); }
int WebSocketSerial::read(void) { return rx_buffer.read(); }
int WebSocketSerial::available(void) { return rx_buffer.available(); }
void WebSocketSerial::flush(void) { rx_buffer.flush(); }
size_t WebSocketSerial::write(const uint8_t c) {
size_t ret = tx_buffer.write(c);
@@ -145,7 +145,7 @@ size_t WebSocketSerial::write(const uint8_t* buffer, size_t size) {
return written;
}
void WebSocketSerial::flushTX() {
void WebSocketSerial::flushTX(void) {
// No need to do anything as there's no benefit to sending partial lines over the websocket connection.
}
+9 -9
View File
@@ -45,11 +45,11 @@ public:
RingBuffer(ring_buffer_pos_t size);
~RingBuffer();
int available();
int peek();
int read();
int available(void);
int peek(void);
int read(void);
ring_buffer_pos_t read(uint8_t *buffer);
void flush();
void flush(void);
ring_buffer_pos_t write(const uint8_t c);
ring_buffer_pos_t write(const uint8_t* buffer, ring_buffer_pos_t size);
};
@@ -62,11 +62,11 @@ public:
WebSocketSerial();
void begin(const long);
void end();
int available();
int peek();
int read();
void flush();
void flushTX();
int available(void);
int peek(void);
int read(void);
void flush(void);
void flushTX(void);
size_t write(const uint8_t c);
size_t write(const uint8_t* buffer, size_t size);
+13 -14
View File
@@ -38,41 +38,40 @@
#include "../../module/endstops.h"
// One ISR for all EXT-Interrupts
void ICACHE_RAM_ATTR endstop_ISR() { endstops.update(); }
void ICACHE_RAM_ATTR endstop_ISR(void) { endstops.update(); }
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
void setup_endstop_interrupts(void) {
#if HAS_X_MAX
_ATTACH(X_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_X_MIN
_ATTACH(X_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Y_MAX
_ATTACH(Y_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Y_MIN
_ATTACH(Y_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MAX
_ATTACH(Z_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MIN
_ATTACH(Z_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z2_MAX
_ATTACH(Z2_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z2_MIN
_ATTACH(Z2_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z3_MAX
_ATTACH(Z3_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z3_MIN
_ATTACH(Z3_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MIN_PROBE_PIN
_ATTACH(Z_MIN_PROBE_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
#endif
}
+7 -7
View File
@@ -79,13 +79,13 @@ typedef uint64_t hal_timer_t;
#define ENABLE_TEMPERATURE_INTERRUPT() HAL_timer_enable_interrupt(TEMP_TIMER_NUM)
#define DISABLE_TEMPERATURE_INTERRUPT() HAL_timer_disable_interrupt(TEMP_TIMER_NUM)
#define HAL_TEMP_TIMER_ISR() extern "C" void tempTC_Handler()
#define HAL_STEP_TIMER_ISR() extern "C" void stepTC_Handler()
#define HAL_PWM_TIMER_ISR() extern "C" void pwmTC_Handler()
#define HAL_TEMP_TIMER_ISR() extern "C" void tempTC_Handler(void)
#define HAL_STEP_TIMER_ISR() extern "C" void stepTC_Handler(void)
#define HAL_PWM_TIMER_ISR() extern "C" void pwmTC_Handler(void)
extern "C" void tempTC_Handler();
extern "C" void stepTC_Handler();
extern "C" void pwmTC_Handler();
extern "C" void tempTC_Handler(void);
extern "C" void stepTC_Handler(void);
extern "C" void pwmTC_Handler(void);
// ------------------------
// Types
@@ -95,7 +95,7 @@ typedef struct {
timer_group_t group;
timer_idx_t idx;
uint32_t divider;
void (*fn)();
void (*fn)(void);
} tTimerConfig;
// ------------------------
+2 -2
View File
@@ -28,11 +28,11 @@
#include "watchdog.h"
void watchdogSetup() {
void watchdogSetup(void) {
// do whatever. don't remove this function.
}
void watchdog_init() {
void watchdog_init(void) {
// TODO
}
+1 -1
View File
@@ -25,4 +25,4 @@
void watchdog_init();
// Reset watchdog.
inline void HAL_watchdog_refresh() {}
inline void watchdog_reset() { }
+6 -6
View File
@@ -31,10 +31,10 @@ HalSerial usb_serial;
extern "C" void u8g_xMicroDelay(uint16_t val) {
DELAY_US(val);
}
extern "C" void u8g_MicroDelay() {
extern "C" void u8g_MicroDelay(void) {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay() {
extern "C" void u8g_10MicroDelay(void) {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
@@ -51,7 +51,7 @@ int freeMemory() {
// ADC
// ------------------------
void HAL_adc_init() {
void HAL_adc_init(void) {
}
@@ -64,18 +64,18 @@ void HAL_adc_start_conversion(const uint8_t ch) {
active_ch = ch;
}
bool HAL_adc_finished() {
bool HAL_adc_finished(void) {
return true;
}
uint16_t HAL_adc_get_result() {
uint16_t HAL_adc_get_result(void) {
pin_t pin = analogInputToDigitalPin(active_ch);
if (!VALID_PIN(pin)) return 0;
uint16_t data = ((Gpio::get(pin) >> 2) & 0x3FF);
return data; // return 10bit value as Marlin expects
}
void HAL_pwm_init() {
void HAL_pwm_init(void) {
}
+4 -8
View File
@@ -78,12 +78,12 @@ extern HalSerial usb_serial;
#define ENABLE_ISRS()
#define DISABLE_ISRS()
inline void HAL_init() {}
inline void HAL_init(void) { }
// Utility functions
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
int freeMemory(void);
#pragma GCC diagnostic pop
// ADC
@@ -92,14 +92,10 @@ int freeMemory();
#define HAL_READ_ADC() HAL_adc_get_result()
#define HAL_ADC_READY() true
void HAL_adc_init();
void HAL_adc_init(void);
void HAL_adc_enable_channel(int pin);
void HAL_adc_start_conversion(const uint8_t adc_pin);
uint16_t HAL_adc_get_result();
// Reset source
inline void HAL_clear_reset_source(void) {}
inline uint8_t HAL_get_reset_source(void) { return RST_POWER_ON; }
uint16_t HAL_adc_get_result(void);
/* ---------------- Delay in cycles */
FORCE_INLINE static void DELAY_CYCLES(uint64_t x) {
+2 -2
View File
@@ -28,8 +28,8 @@
#include "../shared/Delay.h"
// Interrupts
void cli() { } // Disable
void sei() { } // Enable
void cli(void) { } // Disable
void sei(void) { } // Enable
// Time functions
void _delay_ms(const int delay_ms) {
+3 -3
View File
@@ -63,9 +63,9 @@ typedef uint8_t byte;
#define constrain(value, arg_min, arg_max) ((value) < (arg_min) ? (arg_min) :((value) > (arg_max) ? (arg_max) : (value)))
//Interrupts
void cli(); // Disable
void sei(); // Enable
void attachInterrupt(uint32_t pin, void (*callback)(), uint32_t mode);
void cli(void); // Disable
void sei(void); // Enable
void attachInterrupt(uint32_t pin, void (*callback)(void), uint32_t mode);
void detachInterrupt(uint32_t pin);
extern "C" void GpioEnableInt(uint32_t port, uint32_t pin, uint32_t mode);
extern "C" void GpioDisableInt(uint32_t port, uint32_t pin);
+5 -5
View File
@@ -83,9 +83,9 @@ public:
HalSerial() { host_connected = true; }
void begin(int32_t) {}
void begin(int32_t baud) { }
void end() {}
void end() { }
int peek() {
uint8_t value;
@@ -108,11 +108,11 @@ public:
void flush() { receive_buffer.clear(); }
uint8_t availableForWrite() {
uint8_t availableForWrite(void) {
return transmit_buffer.free() > 255 ? 255 : (uint8_t)transmit_buffer.free();
}
void flushTX() {
void flushTX(void) {
if (host_connected)
while (transmit_buffer.available()) { /* nada */ }
}
@@ -200,7 +200,7 @@ public:
void println(unsigned long value, int nbase = 0) { print(value, nbase); println(); }
void println(float value, int round = 6) { printf("%f\n" , value); }
void println(double value, int round = 6) { printf("%f\n" , value); }
void println() { print('\n'); }
void println(void) { print('\n'); }
volatile RingBuffer<uint8_t, 128> receive_buffer;
volatile RingBuffer<uint8_t, 128> transmit_buffer;
+1 -1
View File
@@ -104,7 +104,7 @@ void simulation_loop() {
}
}
int main() {
int main(void) {
std::thread write_serial (write_serial_thread);
std::thread read_serial (read_serial_thread);
+1 -1
View File
@@ -37,7 +37,7 @@ HAL_TEMP_TIMER_ISR();
Timer timers[2];
void HAL_timer_init() {
void HAL_timer_init(void) {
timers[0].init(0, STEPPER_TIMER_RATE, TIMER0_IRQHandler);
timers[1].init(1, TEMP_TIMER_RATE, TIMER1_IRQHandler);
}
+4 -4
View File
@@ -59,16 +59,16 @@ typedef uint32_t hal_timer_t;
#define ENABLE_TEMPERATURE_INTERRUPT() HAL_timer_enable_interrupt(TEMP_TIMER_NUM)
#define DISABLE_TEMPERATURE_INTERRUPT() HAL_timer_disable_interrupt(TEMP_TIMER_NUM)
#define HAL_STEP_TIMER_ISR() extern "C" void TIMER0_IRQHandler()
#define HAL_TEMP_TIMER_ISR() extern "C" void TIMER1_IRQHandler()
#define HAL_STEP_TIMER_ISR() extern "C" void TIMER0_IRQHandler(void)
#define HAL_TEMP_TIMER_ISR() extern "C" void TIMER1_IRQHandler(void)
// PWM timer
#define HAL_PWM_TIMER
#define HAL_PWM_TIMER_ISR() extern "C" void TIMER3_IRQHandler()
#define HAL_PWM_TIMER_ISR() extern "C" void TIMER3_IRQHandler(void)
#define HAL_PWM_TIMER_IRQn
void HAL_timer_init();
void HAL_timer_init(void);
void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency);
void HAL_timer_set_compare(const uint8_t timer_num, const hal_timer_t compare);
+13 -3
View File
@@ -28,9 +28,19 @@
#include "watchdog.h"
void watchdog_init() {}
void HAL_watchdog_refresh() {}
void watchdog_init(void) {}
#endif
void HAL_clear_reset_source(void) {}
uint8_t HAL_get_reset_source(void) {
return RST_POWER_ON;
}
void watchdog_reset() {}
#else
void HAL_clear_reset_source(void) {}
uint8_t HAL_get_reset_source(void) { return RST_POWER_ON; }
#endif // USE_WATCHDOG
#endif // __PLAT_LINUX__
+4 -2
View File
@@ -23,5 +23,7 @@
#define WDT_TIMEOUT 4000000 // 4 second timeout
void watchdog_init();
void HAL_watchdog_refresh();
void watchdog_init(void);
void watchdog_reset(void);
void HAL_clear_reset_source(void);
uint8_t HAL_get_reset_source(void);
+9 -9
View File
@@ -44,7 +44,7 @@
#define sw_barrier() __asm__ volatile("": : :"memory");
// (re)initialize UART0 as a monitor output to 250000,n,8,1
static void TXBegin() {
static void TXBegin(void) {
}
// Send character through UART with no interrupts
@@ -210,7 +210,7 @@ void HardFault_HandlerC(unsigned long *sp, unsigned long lr, unsigned long cause
}
extern "C" {
__attribute__((naked)) void NMI_Handler() {
__attribute__((naked)) void NMI_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -223,7 +223,7 @@ __attribute__((naked)) void NMI_Handler() {
);
}
__attribute__((naked)) void HardFault_Handler() {
__attribute__((naked)) void HardFault_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -236,7 +236,7 @@ __attribute__((naked)) void HardFault_Handler() {
);
}
__attribute__((naked)) void MemManage_Handler() {
__attribute__((naked)) void MemManage_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -249,7 +249,7 @@ __attribute__((naked)) void MemManage_Handler() {
);
}
__attribute__((naked)) void BusFault_Handler() {
__attribute__((naked)) void BusFault_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -262,7 +262,7 @@ __attribute__((naked)) void BusFault_Handler() {
);
}
__attribute__((naked)) void UsageFault_Handler() {
__attribute__((naked)) void UsageFault_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -275,7 +275,7 @@ __attribute__((naked)) void UsageFault_Handler() {
);
}
__attribute__((naked)) void DebugMon_Handler() {
__attribute__((naked)) void DebugMon_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -289,7 +289,7 @@ __attribute__((naked)) void DebugMon_Handler() {
}
/* This is NOT an exception, it is an interrupt handler - Nevertheless, the framing is the same */
__attribute__((naked)) void WDT_IRQHandler() {
__attribute__((naked)) void WDT_IRQHandler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -302,7 +302,7 @@ __attribute__((naked)) void WDT_IRQHandler() {
);
}
__attribute__((naked)) void RSTC_Handler() {
__attribute__((naked)) void RSTC_Handler(void) {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
+2 -19
View File
@@ -26,18 +26,14 @@
#include "../shared/Delay.h"
#include "../../../gcode/parser.h"
#if ENABLED(USE_WATCHDOG)
#include "watchdog.h"
#endif
// U8glib required functions
extern "C" void u8g_xMicroDelay(uint16_t val) {
DELAY_US(val);
}
extern "C" void u8g_MicroDelay() {
extern "C" void u8g_MicroDelay(void) {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay() {
extern "C" void u8g_10MicroDelay(void) {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
@@ -69,17 +65,4 @@ void flashFirmware(int16_t value) {
NVIC_SystemReset();
}
void HAL_clear_reset_source(void) {
#if ENABLED(USE_WATCHDOG)
watchdog_clear_timeout_flag();
#endif
}
uint8_t HAL_get_reset_source(void) {
#if ENABLED(USE_WATCHDOG)
if (watchdog_timed_out()) return RST_WATCHDOG;
#endif
return RST_POWER_ON;
}
#endif // TARGET_LPC1768
+3 -7
View File
@@ -28,7 +28,7 @@
#define CPU_32_BIT
void HAL_init();
void HAL_init(void);
#include <stdint.h>
#include <stdarg.h>
@@ -113,7 +113,7 @@ extern "C" volatile uint32_t _millis;
//
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
int freeMemory(void);
#pragma GCC diagnostic pop
//
@@ -144,7 +144,7 @@ int16_t PARSED_PIN_INDEX(const char code, const int16_t dval);
#define HAL_SENSITIVE_PINS P0_06, P0_07, P0_08, P0_09
#define HAL_IDLETASK 1
void HAL_idletask();
void HAL_idletask(void);
#define PLATFORM_M997_SUPPORT
void flashFirmware(int16_t value);
@@ -164,7 +164,3 @@ void set_pwm_frequency(const pin_t pin, int f_desired);
* Optionally allows changing the maximum size of the provided value to enable finer PWM duty control [default = 255]
*/
void set_pwm_duty(const pin_t pin, const uint16_t v, const uint16_t v_size=255, const bool invert=false);
// Reset source
void HAL_clear_reset_source(void);
uint8_t HAL_get_reset_source(void);
+4 -4
View File
@@ -27,28 +27,28 @@
#if (defined(SERIAL_PORT) && SERIAL_PORT == 0) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 0)
MarlinSerial MSerial(LPC_UART0);
extern "C" void UART0_IRQHandler() {
extern "C" void UART0_IRQHandler(void) {
MSerial.IRQHandler();
}
#endif
#if (defined(SERIAL_PORT) && SERIAL_PORT == 1) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 1)
MarlinSerial MSerial1((LPC_UART_TypeDef *) LPC_UART1);
extern "C" void UART1_IRQHandler() {
extern "C" void UART1_IRQHandler(void) {
MSerial1.IRQHandler();
}
#endif
#if (defined(SERIAL_PORT) && SERIAL_PORT == 2) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 2)
MarlinSerial MSerial2(LPC_UART2);
extern "C" void UART2_IRQHandler() {
extern "C" void UART2_IRQHandler(void) {
MSerial2.IRQHandler();
}
#endif
#if (defined(SERIAL_PORT) && SERIAL_PORT == 3) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 3)
MarlinSerial MSerial3(LPC_UART3);
extern "C" void UART3_IRQHandler() {
extern "C" void UART3_IRQHandler(void) {
MSerial3.IRQHandler();
}
#endif
+1 -1
View File
@@ -49,7 +49,7 @@ public:
{
}
void end() {}
void end() { }
#if ENABLED(EMERGENCY_PARSER)
bool recv_callback(const char c) override {
+4 -4
View File
@@ -57,11 +57,11 @@ class libServo: public Servo {
constexpr uint16_t servo_delay[] = SERVO_DELAY;
static_assert(COUNT(servo_delay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM_SERVOS long.");
if (attach(servo_info[servoIndex].Pin.nbr) >= 0) { // try to reattach
write(value);
safe_delay(servo_delay[servoIndex]); // delay to allow servo to reach position
if (this->attach(servo_info[this->servoIndex].Pin.nbr) >= 0) { // try to reattach
this->write(value);
safe_delay(servo_delay[this->servoIndex]); // delay to allow servo to reach position
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
detach();
this->detach();
#endif
}
+24 -25
View File
@@ -38,74 +38,73 @@
#include "../../module/endstops.h"
// One ISR for all EXT-Interrupts
void endstop_ISR() { endstops.update(); }
void endstop_ISR(void) { endstops.update(); }
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
void setup_endstop_interrupts(void) {
#if HAS_X_MAX
#if !LPC1768_PIN_INTERRUPT_M(X_MAX_PIN)
#error "X_MAX_PIN is not INTERRUPT-capable."
#error "X_MAX_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(X_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_X_MIN
#if !LPC1768_PIN_INTERRUPT_M(X_MIN_PIN)
#error "X_MIN_PIN is not INTERRUPT-capable."
#error "X_MIN_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(X_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Y_MAX
#if !LPC1768_PIN_INTERRUPT_M(Y_MAX_PIN)
#error "Y_MAX_PIN is not INTERRUPT-capable."
#error "Y_MAX_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Y_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Y_MIN
#if !LPC1768_PIN_INTERRUPT_M(Y_MIN_PIN)
#error "Y_MIN_PIN is not INTERRUPT-capable."
#error "Y_MIN_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Y_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z_MAX_PIN)
#error "Z_MAX_PIN is not INTERRUPT-capable."
#error "Z_MAX_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z_MIN_PIN)
#error "Z_MIN_PIN is not INTERRUPT-capable."
#error "Z_MIN_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z2_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z2_MAX_PIN)
#error "Z2_MAX_PIN is not INTERRUPT-capable."
#error "Z2_MAX_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z2_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z2_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z2_MIN_PIN)
#error "Z2_MIN_PIN is not INTERRUPT-capable."
#error "Z2_MIN_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z2_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z3_MAX
#if !LPC1768_PIN_INTERRUPT_M(Z3_MIN_PIN)
#error "Z3_MIN_PIN is not INTERRUPT-capable."
#error "Z3_MIN_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z3_MAX_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z3_MIN
#if !LPC1768_PIN_INTERRUPT_M(Z3_MIN_PIN)
#error "Z3_MIN_PIN is not INTERRUPT-capable."
#error "Z3_MIN_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z3_MIN_PIN);
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
#endif
#if HAS_Z_MIN_PROBE_PIN
#if !LPC1768_PIN_INTERRUPT_M(Z_MIN_PROBE_PIN)
#error "Z_MIN_PROBE_PIN is not INTERRUPT-capable."
#error "Z_MIN_PROBE_PIN is not an INTERRUPT capable pin."
#endif
_ATTACH(Z_MIN_PROBE_PIN);
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
#endif
}
+2 -2
View File
@@ -24,7 +24,7 @@
#include "../../inc/MarlinConfigPre.h"
#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_PWM
#if ENABLED(FAST_PWM_FAN)
#include <pwm.h>
@@ -36,5 +36,5 @@ void set_pwm_duty(const pin_t pin, const uint16_t v, const uint16_t v_size/*=255
pwm_write_ratio(pin, invert ? 1.0f - (float)v / v_size : (float)v / v_size);
}
#endif // FAST_PWM_FAN || SPINDLE_LASER_PWM
#endif // FAST_PWM_FAN
#endif // TARGET_LPC1768
@@ -89,7 +89,7 @@ uint8_t digipot_mcp4451_start(uint8_t sla) { // send slave address and write bi
return 1;
}
void digipot_mcp4451_init() {
void digipot_mcp4451_init(void) {
/**
* Init I2C pin connect
*/
@@ -45,7 +45,7 @@
#include <lpc17xx_libcfg_default.h>
uint8_t digipot_mcp4451_start(uint8_t sla);
void digipot_mcp4451_init();
void digipot_mcp4451_init(void);
uint8_t digipot_mcp4451_send_byte(uint8_t data);
#ifdef __cplusplus
+5 -5
View File
@@ -42,11 +42,11 @@ extern "C" {
extern uint32_t MSC_SD_Init(uint8_t pdrv);
extern "C" int isLPC1769();
extern "C" void disk_timerproc();
extern "C" void disk_timerproc(void);
void SysTick_Callback() { disk_timerproc(); }
void HAL_init() {
void HAL_init(void) {
// Init LEDs
#if PIN_EXISTS(LED)
@@ -149,16 +149,16 @@ void HAL_init() {
}
// HAL idle task
void HAL_idletask() {
void HAL_idletask(void) {
#if ENABLED(SHARED_SD_CARD)
// If Marlin is using the SD card we need to lock it to prevent access from
// a PC via USB.
// Other HALs use IS_SD_PRINTING() and IS_SD_FILE_OPEN() to check for access but
// this will not reliably detect delete operations. To be safe we will lock
// the disk if Marlin has it mounted. Unfortunately there is currently no way
// the disk if Marlin has it mounted. Unfortuately there is currently no way
// to unmount the disk from the LCD menu.
// if (IS_SD_PRINTING() || IS_SD_FILE_OPEN())
if (card.isMounted())
if (card.isDetected())
MSC_Aquire_Lock();
else
MSC_Release_Lock();
+1 -1
View File
@@ -31,7 +31,7 @@
#include "../../inc/MarlinConfig.h"
#include "timers.h"
void HAL_timer_init() {
void HAL_timer_init(void) {
SBI(LPC_SC->PCONP, SBIT_TIMER0); // Power ON Timer 0
LPC_TIM0->PR = (HAL_TIMER_RATE) / (STEPPER_TIMER_RATE) - 1; // Use prescaler to set frequency if needed
+2 -2
View File
@@ -53,7 +53,7 @@
#define _HAL_TIMER(T) _CAT(LPC_TIM, T)
#define _HAL_TIMER_IRQ(T) TIMER##T##_IRQn
#define __HAL_TIMER_ISR(T) extern "C" void TIMER##T##_IRQHandler()
#define __HAL_TIMER_ISR(T) extern "C" void TIMER##T##_IRQHandler(void)
#define _HAL_TIMER_ISR(T) __HAL_TIMER_ISR(T)
typedef uint32_t hal_timer_t;
@@ -94,7 +94,7 @@ typedef uint32_t hal_timer_t;
// ------------------------
// Public functions
// ------------------------
void HAL_timer_init();
void HAL_timer_init(void);
void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency);
FORCE_INLINE static void HAL_timer_set_compare(const uint8_t timer_num, const hal_timer_t compare) {
@@ -163,7 +163,7 @@ uint8_t u8g_i2c_send_byte(uint8_t data) {
return 1;
}
void u8g_i2c_stop() {
void u8g_i2c_stop(void) {
}
@@ -25,4 +25,4 @@ void u8g_i2c_init(uint8_t options);
uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos);
uint8_t u8g_i2c_start(uint8_t sla);
uint8_t u8g_i2c_send_byte(uint8_t data);
void u8g_i2c_stop();
void u8g_i2c_stop(void);
+2 -2
View File
@@ -35,8 +35,8 @@
#endif
void U8g_delay(int msec);
void u8g_MicroDelay();
void u8g_10MicroDelay();
void u8g_MicroDelay(void);
void u8g_10MicroDelay(void);
#ifdef __cplusplus
}
@@ -138,7 +138,7 @@ uint8_t u8g_i2c_start_sw(uint8_t sla) { // assert start condition and then send
}
void u8g_i2c_stop_sw() { }
void u8g_i2c_stop_sw(void) { }
void u8g_i2c_init_sw(uint8_t clock_option) { u8g_i2c_start(0); } // send slave address and write bit
@@ -31,7 +31,7 @@ try:
#
import subprocess
# typical result (string): 'Drives: C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
driveStr = subprocess.check_output("fsutil fsinfo drives").decode('utf8')
driveStr = subprocess.check_output("fsutil fsinfo drives")
# typical result (string): 'C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
driveStr = driveStr.strip().lstrip('Drives: ')
# typical result (array of stings): ['C:\\', 'D:\\', 'E:\\', 'F:\\',
@@ -44,7 +44,7 @@ try:
for drive in drives:
final_drive_name = drive.strip().rstrip('\\') # typical result (string): 'C:'
try:
volume_info = subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT).decode('utf8')
volume_info = subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT)
except Exception as e:
continue
else:
+17 -5
View File
@@ -29,7 +29,7 @@
#include "lpc17xx_wdt.h"
#include "watchdog.h"
void watchdog_init() {
void watchdog_init(void) {
#if ENABLED(WATCHDOG_RESET_MANUAL)
// We enable the watchdog timer, but only for the interrupt.
@@ -56,16 +56,28 @@ void watchdog_init() {
WDT_Start(WDT_TIMEOUT);
}
void HAL_watchdog_refresh() {
void HAL_clear_reset_source(void) {
WDT_ClrTimeOutFlag();
}
uint8_t HAL_get_reset_source(void) {
if (TEST(WDT_ReadTimeOutFlag(), 0)) return RST_WATCHDOG;
return RST_POWER_ON;
}
void watchdog_reset() {
WDT_Feed();
#if DISABLED(PINS_DEBUGGING) && PIN_EXISTS(LED)
TOGGLE(LED_PIN); // heartbeat indicator
#endif
}
// Timeout state
bool watchdog_timed_out() { return TEST(WDT_ReadTimeOutFlag(), 0); }
void watchdog_clear_timeout_flag() { WDT_ClrTimeOutFlag(); }
#else
void watchdog_init(void) {}
void watchdog_reset(void) {}
void HAL_clear_reset_source(void) {}
uint8_t HAL_get_reset_source(void) { return RST_POWER_ON; }
#endif // USE_WATCHDOG
+4 -5
View File
@@ -23,8 +23,7 @@
#define WDT_TIMEOUT 4000000 // 4 second timeout
void watchdog_init();
void HAL_watchdog_refresh();
bool watchdog_timed_out();
void watchdog_clear_timeout_flag();
void watchdog_init(void);
void watchdog_reset(void);
void HAL_clear_reset_source(void);
uint8_t HAL_get_reset_source(void);
+8 -9
View File
@@ -368,13 +368,12 @@ uint16_t HAL_adc_result;
// ------------------------
// HAL initialization task
void HAL_init() {
void HAL_init(void) {
#if DMA_IS_REQUIRED
dma_init();
#endif
#if ENABLED(SDSUPPORT)
// SD_DETECT_PIN may be removed if NO_SD_HOST_DRIVE is not defined in Configuration_adv.h
#if SD_CONNECTION_IS(ONBOARD) && PIN_EXISTS(SD_DETECT)
#if SD_CONNECTION_IS(ONBOARD) && PIN_EXISTS(SD_DETECT) // SD_DETECT_PIN may be remove when NO_SD_HOST_DRIVE is not defined in configuration_adv
SET_INPUT_PULLUP(SD_DETECT_PIN);
#endif
OUT_WRITE(SDSS, HIGH); // Try to set SDSS inactive before any other SPI users start up
@@ -383,15 +382,15 @@ void HAL_init() {
// HAL idle task
/*
void HAL_idletask() {
void HAL_idletask(void) {
}
*/
void HAL_clear_reset_source() { }
void HAL_clear_reset_source(void) { }
#pragma push_macro("WDT")
#undef WDT // Required to be able to use '.bit.WDT'. Compiler wrongly replace struct field with WDT define
uint8_t HAL_get_reset_source() {
uint8_t HAL_get_reset_source(void) {
RSTC_RCAUSE_Type resetCause;
resetCause.reg = REG_RSTC_RCAUSE;
@@ -414,14 +413,14 @@ extern "C" {
// Return free memory between end of heap (or end bss) and whatever is current
int freeMemory() {
int free_memory, heap_end = (int)_sbrk(0);
return (int)&free_memory - (heap_end ?: (int)&__bss_end__);
return (int)&free_memory - (heap_end ? heap_end : (int)&__bss_end__);
}
// ------------------------
// ADC
// ------------------------
void HAL_adc_init() {
void HAL_adc_init(void) {
#if ADC_IS_REQUIRED
memset(HAL_adc_results, 0xFF, sizeof(HAL_adc_results)); // Fill result with invalid values
@@ -469,7 +468,7 @@ void HAL_adc_start_conversion(const uint8_t adc_pin) {
HAL_adc_result = 0xFFFF;
}
uint16_t HAL_adc_get_result() {
uint16_t HAL_adc_get_result(void) {
return HAL_adc_result;
}

Some files were not shown because too many files have changed in this diff Show More