Compare commits

..

487 Commits

Author SHA1 Message Date
InsanityAutomation 69f91ffdc5 Add hex files 2019-10-27 13:03:18 -04:00
InsanityAutomation 1b6f303adb Update Configuration.h 2019-10-27 13:02:33 -04:00
InsanityAutomation 81e6155f88 Ender config updates 2019-10-27 12:16:11 -04:00
InsanityAutomation 352676885d Update bedlevel.cpp 2019-10-18 23:57:18 -04:00
InsanityAutomation dbb62feac9 Update Configuration_adv.h 2019-10-18 23:16:42 -04:00
InsanityAutomation 7805b59936 Tweaks for CR2020, Add Mosquito option, Add 10sProV2 2019-10-18 23:11:17 -04:00
InsanityAutomation 4c90b7e82e Tweaks for probe inset front and rear for binder clips 2019-10-18 16:10:23 -04:00
InsanityAutomation ebaa72811d Final CR2020 tweaks 2019-10-18 12:53:06 -04:00
InsanityAutomation 39cd26487a add cr2020 pid 2019-10-18 12:10:10 -04:00
InsanityAutomation de2c3bb3f3 finish cr2020 2019-10-16 21:48:18 -04:00
InsanityAutomation 42d68ff13f Tweaks to cr2020 2019-10-16 20:48:58 -04:00
InsanityAutomation 463e3d4436 Update Configuration.h 2019-10-16 20:00:55 -04:00
InsanityAutomation 3cf1e618eb Initial CR2020 Support 2019-10-16 19:58:32 -04:00
InsanityAutomation 575570f2a8 Ultra compress melzi builds 2019-10-15 21:47:39 -04:00
InsanityAutomation f1823aca55 Update Configuration.h 2019-10-15 15:01:06 -04:00
InsanityAutomation cf4766a2b2 Bump to head and M851XY Tweaks 2019-10-06 16:43:38 -04:00
InsanityAutomation 38ce8b9772 Bump to head 2019-09-29 00:20:38 -04:00
InsanityAutomation c0159be9df Update Configuration.h 2019-09-28 18:44:43 -04:00
InsanityAutomation c80623998c Update Configuration.h 2019-09-28 18:04:58 -04:00
InsanityAutomation ae067f1c45 Update Configuration.h 2019-09-28 18:04:10 -04:00
InsanityAutomation aa20e8e419 Update Configuration.h 2019-09-28 17:51:55 -04:00
InsanityAutomation 9393a1e75b Add probe offsets 2019-09-28 15:38:39 -04:00
InsanityAutomation 201f0ae03e Add CR10V2 support 2019-09-28 15:26:47 -04:00
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
1282 changed files with 227899 additions and 30361 deletions
+5 -5
View File
@@ -240,14 +240,14 @@ jobs:
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo testing STM32F1 targets...
export TEST_PLATFORM="-e STM32F1"
export TEST_PLATFORM="-e STM32F103RE"
restore_configs
echo use_example_configs STM32F10
use_example_configs STM32F10
echo use_example_configs STM32/STM32F103RE
use_example_configs STM32/STM32F103RE
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
echo use_example_configs stm32f103ret6
use_example_configs stm32f103ret6
echo use_example_configs STM32/stm32f103ret6
use_example_configs STM32/stm32f103ret6
build_marlin_pio ./ ${TEST_PLATFORM}
restore_configs
+1
View File
@@ -0,0 +1 @@
custom: http://www.thinkyhead.com/donate-to-marlin
+1 -1
View File
@@ -2,7 +2,7 @@
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.0.x/.github/code_of_conduct.md
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/.
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/ or the Marlin Discord Server https://discord.gg/n5NJ59y.
Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to see whether the issue is already addressed.
+39 -21
View File
@@ -1,39 +1,57 @@
dist: xenial
sudo: require
dist: bionic
sudo: false
language: python
python:
- "2.7"
- "3.7"
notifications:
email: false
# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
pip: true
directories:
- "~/.platformio"
env:
- TEST_PLATFORM="megaatmega2560"
# Base Environments
- TEST_PLATFORM="DUE"
- TEST_PLATFORM="esp32"
- TEST_PLATFORM="linux_native"
- TEST_PLATFORM="LPC1768"
- TEST_PLATFORM="LPC1769"
- TEST_PLATFORM="STM32F1"
- TEST_PLATFORM="megaatmega2560"
- TEST_PLATFORM="STM32F103RE"
- TEST_PLATFORM="teensy31"
- TEST_PLATFORM="teensy35"
- TEST_PLATFORM="linux_native"
- TEST_PLATFORM="esp32"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
# 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"
# Non-working environment tests
#- TEST_PLATFORM="at90usb1286_cdc"
#- TEST_PLATFORM="at90usb1286_dfu"
#- TEST_PLATFORM="STM32F103CB_malyan"
#- TEST_PLATFORM="mks_robin"
#- 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"
before_install:
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 90
#
# Fetch the tag information for the current branch
- git fetch origin --tags
Binary file not shown.
+9758
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.
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
+1106 -311
View File
File diff suppressed because it is too large Load Diff
+503 -209
View File
File diff suppressed because it is too large Load Diff
+8 -2
View File
@@ -237,7 +237,7 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1134)
else ifeq ($(HARDWARE_MOTHERBOARD),1135)
# Dagoma F5
else ifeq ($(HARDWARE_MOTHERBOARD),1136)
# Fysetc F6
# FYSETC F6
else ifeq ($(HARDWARE_MOTHERBOARD),1137)
# Duplicator i3 Plus
else ifeq ($(HARDWARE_MOTHERBOARD),1138)
@@ -247,6 +247,10 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1139)
else ifeq ($(HARDWARE_MOTHERBOARD),1140)
# Z-Bolt X Series
else ifeq ($(HARDWARE_MOTHERBOARD),1141)
# TT OSCAR
else ifeq ($(HARDWARE_MOTHERBOARD),1142)
# Overlord/Overlord Pro
else ifeq ($(HARDWARE_MOTHERBOARD),1143)
#
# RAMBo and derivatives
@@ -314,9 +318,11 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1319)
# ATmega1281, ATmega2561
#
# Minitronics v1.0/1.1
else ifeq ($(HARDWARE_MOTHERBOARD),1400)
MCU ?= atmega1281
else ifeq ($(HARDWARE_MOTHERBOARD),1410)
# Silvergate v1.0
else ifeq ($(HARDWARE_MOTHERBOARD),1401)
MCU ?= atmega1281
#
+1 -1
View File
@@ -3,7 +3,7 @@
Marlin Firmware
(c) 2011-2018 MarlinFirmware
(c) 2011-2019 MarlinFirmware
Portions of Marlin are (c) by their respective authors.
All code complies with GPLv2 and/or GPLv3
+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,3 +24,9 @@
#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) {
void HAL_init() {
// Init Servo Pins
#define INIT_SERVO(N) OUT_WRITE(SERVO##N##_PIN, LOW)
#if HAS_SERVO_0
+21 -19
View File
@@ -20,9 +20,9 @@
#include "../shared/Marduino.h"
#include "../shared/HAL_SPI.h"
#include "fastio_AVR.h"
#include "watchdog_AVR.h"
#include "math_AVR.h"
#include "fastio.h"
#include "watchdog.h"
#include "math.h"
#ifdef USBCON
#include "HardwareSerial.h"
@@ -105,18 +105,21 @@ typedef int8_t pin_t;
// Public functions
// ------------------------
void HAL_init(void);
void HAL_init();
//void cli(void);
//void cli();
//void _delay_ms(const int delay);
inline void HAL_clear_reset_source(void) { MCUSR = 0; }
inline uint8_t HAL_get_reset_source(void) { return MCUSR; }
inline void HAL_clear_reset_source() { MCUSR = 0; }
inline uint8_t HAL_get_reset_source() { return MCUSR; }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
extern "C" {
int freeMemory(void);
int freeMemory();
}
#pragma GCC diagnostic pop
// timers
#define HAL_TIMER_RATE ((F_CPU) / 8) // i.e., 2MHz or 2.5MHz
@@ -143,8 +146,7 @@ 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 frequency) {
UNUSED(frequency);
FORCE_INLINE void HAL_timer_start(const uint8_t timer_num, const uint32_t) {
switch (timer_num) {
case STEP_TIMER_NUM:
// waveform generation = 0100 = CTC
@@ -196,9 +198,9 @@ FORCE_INLINE void HAL_timer_start(const uint8_t timer_num, const uint32_t freque
/* 18 cycles maximum latency */
#define HAL_STEP_TIMER_ISR() \
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) { \
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() { \
__asm__ __volatile__ ( \
A("push r16") /* 2 Save R16 */ \
A("in r16, __SREG__") /* 1 Get SREG */ \
@@ -265,13 +267,13 @@ void TIMER1_COMPA_vect (void) { \
: \
); \
} \
void TIMER1_COMPA_vect_bottom(void)
void TIMER1_COMPA_vect_bottom()
/* 14 cycles maximum latency */
#define HAL_TEMP_TIMER_ISR() \
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) { \
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() { \
__asm__ __volatile__ ( \
A("push r16") /* 2 Save R16 */ \
A("in r16, __SREG__") /* 1 Get SREG */ \
@@ -331,7 +333,7 @@ void TIMER0_COMPB_vect (void) { \
: \
); \
} \
void TIMER0_COMPB_vect_bottom(void)
void TIMER0_COMPB_vect_bottom()
// ADC
#ifdef DIDR2
@@ -340,7 +342,7 @@ void TIMER0_COMPB_vect_bottom(void)
#define HAL_ANALOG_SELECT(pin) do{ SBI(DIDR0, pin); }while(0)
#endif
inline void HAL_adc_init(void) {
inline void HAL_adc_init() {
ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADIF) | 0x07;
DIDR0 = 0;
#ifdef DIDR2
@@ -33,7 +33,7 @@
#include "../../inc/MarlinConfig.h"
void spiBegin(void) {
void spiBegin() {
OUT_WRITE(SS_PIN, HIGH);
SET_OUTPUT(SCK_PIN);
SET_INPUT(MISO_PIN);
@@ -81,7 +81,7 @@ void spiBegin(void) {
}
/** SPI receive a byte */
uint8_t spiRec(void) {
uint8_t spiRec() {
SPDR = 0xFF;
while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
return SPDR;
@@ -184,15 +184,10 @@ void spiBegin(void) {
// nop to tune soft SPI timing
#define nop asm volatile ("\tnop\n")
// Set SPI rate
void spiInit(uint8_t spiRate) {
UNUSED(spiRate); // nothing to do
}
void spiInit(uint8_t) { /* do nothing */ }
// Begin SPI transaction, set clock, bit order, data mode
void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) {
UNUSED(spiBeginTransaction); // nothing to do
}
void spiBeginTransaction(uint32_t spiClock, uint8_t bitOrder, uint8_t dataMode) { /* do nothing */ }
// 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(void) {
FORCE_INLINE void MarlinSerial<Cfg>::_tx_udr_empty_irq() {
if (Cfg::TX_SIZE > 0) {
// Read positions
uint8_t t = tx_buffer.tail;
@@ -363,13 +363,13 @@
}
template<typename Cfg>
int MarlinSerial<Cfg>::peek(void) {
int MarlinSerial<Cfg>::peek() {
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(void) {
int MarlinSerial<Cfg>::read() {
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(void) {
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available() {
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) {
void MarlinSerial<Cfg>::flush() {
// 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) {
void MarlinSerial<Cfg>::flushTX() {
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) {
void MarlinSerial<Cfg>::println() {
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(void);
FORCE_INLINE static void _tx_udr_empty_irq();
public:
MarlinSerial() {};
static void begin(const long);
static void end();
static int peek(void);
static int read(void);
static void flush(void);
static ring_buffer_pos_t available(void);
static int peek();
static int read();
static void flush();
static ring_buffer_pos_t available();
static void write(const uint8_t c);
static void flushTX(void);
static void flushTX();
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(void);
static void println();
operator bool() { return true; }
private:
@@ -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
+2 -2
View File
@@ -53,8 +53,8 @@
* --------------------
*/
#define TRIM_DURATION 2 // compensation ticks to trim adjust for digitalWrite delays
#define PRESCALER 8 // timer prescaler
#define TRIM_DURATION 2 // compensation ticks to trim adjust for digitalWrite delays
#define SERVO_TIMER_PRESCALER 8 // timer prescaler
// Say which 16 bit timers can be used and in what order
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
+21 -50
View File
@@ -41,7 +41,7 @@
#include <stdint.h>
// One ISR for all EXT-Interrupts
void endstop_ISR(void) { endstops.update(); }
void endstop_ISR() { endstops.update(); }
/**
* Patch for pins_arduino.h (...\Arduino\hardware\arduino\avr\variants\mega\pins_arduino.h)
@@ -102,153 +102,124 @@ void pciSetup(const int8_t pin) {
ISR(PCINT3_vect, ISR_ALIASOF(PCINT0_vect));
#endif
void setup_endstop_interrupts( void ) {
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
#if HAS_X_MAX
#if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT) // if pin has an external interrupt
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
#if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT)
_ATTACH(X_MAX_PIN);
#else
// 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
static_assert(digitalPinToPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable");
pciSetup(X_MAX_PIN);
#endif
#endif
#if HAS_X_MIN
#if (digitalPinToInterrupt(X_MIN_PIN) != NOT_AN_INTERRUPT)
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(X_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Y_MAX_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Y_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MAX_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(X2_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(X2_MAX_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(X2_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(X2_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Y2_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Y2_MAX_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Y2_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Y2_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z2_MAX_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z2_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z3_MAX_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z3_MIN_PIN);
#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)
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MIN_PROBE_PIN);
#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
+26 -15
View File
@@ -59,19 +59,19 @@ 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
};
}
#elif defined TCCR2A
#elif defined(TCCR2A)
#if ENABLED(USE_OCR2A_AS_TOP)
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,13 +91,24 @@ Timer get_pwm_timer(const pin_t pin) {
#endif
#endif
#endif
#ifdef TCCR3A
#ifdef OCR3C
case TIMER3C: ++q;
case TIMER3B: ++q;
case TIMER3A: {
Timer timer = {
/*TCCRnQ*/ { &TCCR3A, &TCCR3B, &TCCR3C},
/*OCRnQ*/ { &OCR3A, &OCR3B, &OCR3C},
/*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 },
/*ICRn*/ &ICR3,
/*n, q*/ 3, q
};
@@ -109,8 +120,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
};
@@ -122,7 +133,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
@@ -132,8 +143,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
};
@@ -26,7 +26,7 @@
#ifdef __AVR__
#include "fastio_AVR.h"
#include "fastio.h"
#ifdef FASTIO_EXT_START
+1 -1
View File
@@ -29,7 +29,7 @@
* Logical Pin : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 78 79 80 xx xx 84 85 71 70 xx xx xx xx xx 81 82 83 xx xx 72 72 75 76 77 74 xx xx xx xx xx
*/
#include "../fastio_AVR.h"
#include "../fastio.h"
// change for your board
#define DEBUG_LED DIO21
+1 -1
View File
@@ -28,7 +28,7 @@
* Port: A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 E2 E3 E4 E5 E6 E7 F0 F1 F2 F3 F4 F5 F6 F7 G0 G1 G2 G3 G4 G5
*/
#include "../fastio_AVR.h"
#include "../fastio.h"
// change for your board
#define DEBUG_LED DIO46
+1 -1
View File
@@ -28,7 +28,7 @@
* Port: B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7
*/
#include "../fastio_AVR.h"
#include "../fastio.h"
#define DEBUG_LED AIO5
+1 -1
View File
@@ -54,7 +54,7 @@
* +--------+
*/
#include "../fastio_AVR.h"
#include "../fastio.h"
#define DEBUG_LED DIO0
@@ -29,7 +29,7 @@
* The logical pins 46 and 47 are not supported by Teensyduino, but are supported below as E2 and E3
*/
#include "../fastio_AVR.h"
#include "../fastio.h"
// change for your board
#define DEBUG_LED DIO31 /* led D5 red */
+3 -12
View File
@@ -227,18 +227,9 @@ 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(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;
}
SERIAL_CHAR('0' + N);
SERIAL_CHAR('A' + Z);
SERIAL_ECHOPAIR(": ", int((*TCCRA >> (6 - Z * 2)) & 0x03));
}
void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N - WGM bit layout
@@ -26,7 +26,7 @@
#if ENABLED(USE_WATCHDOG)
#include "watchdog_AVR.h"
#include "watchdog.h"
#include "../../Marlin.h"
@@ -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 watchdog_reset() { wdt_reset(); }
inline void HAL_watchdog_refresh() { wdt_reset(); }
@@ -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(void) {
static void TXBegin() {
// 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(void) {
__attribute__((naked)) void NMI_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -248,7 +248,7 @@ __attribute__((naked)) void NMI_Handler(void) {
);
}
__attribute__((naked)) void HardFault_Handler(void) {
__attribute__((naked)) void HardFault_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -261,7 +261,7 @@ __attribute__((naked)) void HardFault_Handler(void) {
);
}
__attribute__((naked)) void MemManage_Handler(void) {
__attribute__((naked)) void MemManage_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -274,7 +274,7 @@ __attribute__((naked)) void MemManage_Handler(void) {
);
}
__attribute__((naked)) void BusFault_Handler(void) {
__attribute__((naked)) void BusFault_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -287,7 +287,7 @@ __attribute__((naked)) void BusFault_Handler(void) {
);
}
__attribute__((naked)) void UsageFault_Handler(void) {
__attribute__((naked)) void UsageFault_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -300,7 +300,7 @@ __attribute__((naked)) void UsageFault_Handler(void) {
);
}
__attribute__((naked)) void DebugMon_Handler(void) {
__attribute__((naked)) void DebugMon_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -314,7 +314,7 @@ __attribute__((naked)) void DebugMon_Handler(void) {
}
/* This is NOT an exception, it is an interrupt handler - Nevertheless, the framing is the same */
__attribute__((naked)) void WDT_Handler(void) {
__attribute__((naked)) void WDT_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -327,7 +327,7 @@ __attribute__((naked)) void WDT_Handler(void) {
);
}
__attribute__((naked)) void RSTC_Handler(void) {
__attribute__((naked)) void RSTC_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -31,12 +31,12 @@
#ifdef ARDUINO_ARCH_SAM
#include "../shared/persistent_store_api.h"
#include "../../inc/MarlinConfig.h"
#if ENABLED(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM)
#include "../shared/Marduino.h"
#include "../shared/persistent_store_api.h"
#define EEPROMSize 4096
#define PagesPerGroup 128
@@ -922,8 +922,7 @@ static void ee_Init() {
if (!ee_IsPageClean(grp * PagesPerGroup + page)) {
#ifdef EE_EMU_DEBUG
SERIAL_ECHO_START();
SERIAL_ECHOPAIR("EEPROM Page ",page);
SERIAL_ECHOLNPAIR(" not clean on group ",grp);
SERIAL_ECHOLNPAIR("EEPROM Page ", page, " not clean on group ", grp);
SERIAL_FLUSH();
#endif
ee_PageErase(grp * PagesPerGroup + page);
@@ -944,7 +943,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
@@ -953,8 +952,7 @@ static void ee_Init() {
if (!ee_IsPageClean(curGroup * PagesPerGroup + page)) {
#ifdef EE_EMU_DEBUG
SERIAL_ECHO_START();
SERIAL_ECHOPAIR("EEPROM Page ",page);
SERIAL_ECHOLNPAIR(" not clean on active group ",curGroup);
SERIAL_ECHOLNPAIR("EEPROM Page ", page, " not clean on active group ", curGroup);
SERIAL_FLUSH();
ee_Dump(curGroup * PagesPerGroup + page, getFlashStorage(curGroup * PagesPerGroup + page));
#endif
@@ -993,7 +991,7 @@ void eeprom_read_block(void* __dst, const void* __src, size_t __n) {
}
}
void eeprom_flush(void) {
void eeprom_flush() {
ee_Flush();
}
+8 -8
View File
@@ -42,7 +42,7 @@ uint16_t HAL_adc_result;
// ------------------------
// HAL initialization task
void HAL_init(void) {
void HAL_init() {
// 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(void) {
}
// HAL idle task
void HAL_idletask(void) {
void HAL_idletask() {
// Perform USB stack housekeeping
usb_task_idle();
}
// Disable interrupts
void cli(void) { noInterrupts(); }
void cli() { noInterrupts(); }
// Enable interrupts
void sei(void) { interrupts(); }
void sei() { interrupts(); }
void HAL_clear_reset_source(void) { }
void HAL_clear_reset_source() { }
uint8_t HAL_get_reset_source(void) {
uint8_t HAL_get_reset_source() {
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 ? heap_end : (int)&_ebss);
return (int)&free_memory - (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(void) {
uint16_t HAL_adc_get_result() {
// nop
return HAL_adc_result;
}
+19 -26
View File
@@ -32,9 +32,9 @@
#include "../shared/Marduino.h"
#include "../shared/math_32bit.h"
#include "../shared/HAL_SPI.h"
#include "fastio_Due.h"
#include "watchdog_Due.h"
#include "HAL_timers_Due.h"
#include "fastio.h"
#include "watchdog.h"
#include "timers.h"
#include <stdint.h>
@@ -58,8 +58,8 @@
#define NUM_SERIAL 1
#endif
#include "MarlinSerial_Due.h"
#include "MarlinSerialUSB_Due.h"
#include "MarlinSerial.h"
#include "MarlinSerialUSB.h"
// On AVR this is in math.h?
#define square(x) ((x)*(x))
@@ -88,22 +88,11 @@ typedef int8_t pin_t;
#define ENABLE_ISRS() __enable_irq()
#define DISABLE_ISRS() __disable_irq()
void cli(void); // Disable interrupts
void sei(void); // Enable interrupts
void cli(); // Disable interrupts
void sei(); // Enable interrupts
void HAL_clear_reset_source(void); // clear reset reason
uint8_t HAL_get_reset_source(void); // get reset reason
//
// SPI: Extended functions taking a channel number (Hardware SPI only)
//
// Write single byte to specified SPI channel
void spiSend(uint32_t chan, byte b);
// Write buffer to specified SPI channel
void spiSend(uint32_t chan, const uint8_t* buf, size_t n);
// Read single byte from specified SPI channel
uint8_t spiRec(uint32_t chan);
void HAL_clear_reset_source(); // clear reset reason
uint8_t HAL_get_reset_source(); // get reset reason
//
// EEPROM
@@ -124,14 +113,14 @@ extern uint16_t HAL_adc_result; // result of last ADC conversion
#define HAL_ANALOG_SELECT(pin)
inline void HAL_adc_init(void) {}//todo
inline void HAL_adc_init() {}//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(void);
uint16_t HAL_adc_get_result();
//
// Pin Map
@@ -149,19 +138,23 @@ void noTone(const pin_t _pin);
// Enable hooks into idle and setup for HAL
#define HAL_IDLETASK 1
void HAL_idletask(void);
void HAL_init(void);
void HAL_idletask();
void HAL_init();
//
// Utility functions
//
void _delay_ms(const int delay);
int freeMemory(void);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
#pragma GCC diagnostic pop
#ifdef __cplusplus
extern "C" {
#endif
char *dtostrf (double __val, signed char __width, unsigned char __prec, char *__s);
char *dtostrf(double __val, signed char __width, unsigned char __prec, char *__s);
#ifdef __cplusplus
}
#endif
@@ -151,13 +151,12 @@
(((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 bout) { // using Mode 0
static uint8_t spiTransferRx0(uint8_t) { // 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__(
@@ -428,7 +427,7 @@
static void spiTxBlockX(const uint8_t* buf, uint32_t todo) {
do {
(void) spiTransferTx(*buf++);
(void)spiTransferTx(*buf++);
} while (--todo);
}
@@ -34,7 +34,7 @@
#include "../../inc/MarlinConfig.h"
#include "HAL.h"
#include "InterruptVectors_Due.h"
#include "InterruptVectors.h"
/* The relocated Exception/Interrupt Table - According to the ARM
reference manual, alignment to 128 bytes should suffice, but in
@@ -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(void) {
static pfnISR_Handler* get_relocated_table_addr() {
// Get the address of the interrupt/exception table
uint32_t isrtab = SCB->VTOR;
@@ -37,7 +37,7 @@
#ifdef ARDUINO_ARCH_SAM
// ISR handler type
typedef void (*pfnISR_Handler)(void);
typedef void (*pfnISR_Handler)();
// Install a new interrupt vector handler for the given irq, returning the old one
pfnISR_Handler install_isr(IRQn_Type irq, pfnISR_Handler newHandler);
@@ -29,8 +29,8 @@
#include "../../inc/MarlinConfig.h"
#include "MarlinSerial_Due.h"
#include "InterruptVectors_Due.h"
#include "MarlinSerial.h"
#include "InterruptVectors.h"
#include "../../Marlin.h"
template<typename Cfg> typename MarlinSerial<Cfg>::ring_buffer_r MarlinSerial<Cfg>::rx_buffer = { 0, 0, { 0 } };
@@ -178,7 +178,7 @@ FORCE_INLINE void MarlinSerial<Cfg>::store_rxd_char() {
}
template<typename Cfg>
FORCE_INLINE void MarlinSerial<Cfg>::_tx_thr_empty_irq(void) {
FORCE_INLINE void MarlinSerial<Cfg>::_tx_thr_empty_irq() {
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(void) {
}
template<typename Cfg>
void MarlinSerial<Cfg>::UART_ISR(void) {
void MarlinSerial<Cfg>::UART_ISR() {
const uint32_t status = HWUART->UART_SR;
// Data received?
@@ -308,13 +308,13 @@ void MarlinSerial<Cfg>::end() {
}
template<typename Cfg>
int MarlinSerial<Cfg>::peek(void) {
int MarlinSerial<Cfg>::peek() {
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(void) {
int MarlinSerial<Cfg>::read() {
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(void) {
}
template<typename Cfg>
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available(void) {
typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSerial<Cfg>::available() {
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) {
void MarlinSerial<Cfg>::flush() {
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) {
void MarlinSerial<Cfg>::flushTX() {
// 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) {
void MarlinSerial<Cfg>::println() {
print('\r');
print('\n');
}
@@ -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(void);
static void UART_ISR(void);
FORCE_INLINE static void _tx_thr_empty_irq();
static void UART_ISR();
public:
MarlinSerial() {};
static void begin(const long);
static void end();
static int peek(void);
static int read(void);
static void flush(void);
static ring_buffer_pos_t available(void);
static int peek();
static int read();
static void flush();
static ring_buffer_pos_t available();
static void write(const uint8_t c);
static void flushTX(void);
static void flushTX();
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(void);
static void println();
operator bool() { return true; }
private:
@@ -31,7 +31,7 @@
#if SERIAL_PORT == -1
#include "MarlinSerialUSB_Due.h"
#include "MarlinSerialUSB.h"
#if ENABLED(EMERGENCY_PARSER)
#include "../../feature/emergency_parser.h"
@@ -39,11 +39,11 @@
// Imports from Atmel USB Stack/CDC implementation
extern "C" {
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);
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();
int udi_cdc_putc(int value);
};
@@ -55,14 +55,11 @@ static int pending_char = -1;
#endif
// Public Methods
void MarlinSerialUSB::begin(const long baud_setting) {
UNUSED(baud_setting);
}
void MarlinSerialUSB::begin(const long) {}
void MarlinSerialUSB::end() {
}
void MarlinSerialUSB::end() {}
int MarlinSerialUSB::peek(void) {
int MarlinSerialUSB::peek() {
if (pending_char >= 0)
return pending_char;
@@ -83,7 +80,7 @@ int MarlinSerialUSB::peek(void) {
return pending_char;
}
int MarlinSerialUSB::read(void) {
int MarlinSerialUSB::read() {
if (pending_char >= 0) {
int ret = pending_char;
pending_char = -1;
@@ -107,7 +104,7 @@ int MarlinSerialUSB::read(void) {
return c;
}
bool MarlinSerialUSB::available(void) {
bool MarlinSerialUSB::available() {
/* If Pending chars */
return pending_char >= 0 ||
/* or USB CDC enumerated and configured on the PC side and some
@@ -115,8 +112,8 @@ bool MarlinSerialUSB::available(void) {
(usb_task_cdc_isenabled() && udi_cdc_is_rx_ready());
}
void MarlinSerialUSB::flush(void) { }
void MarlinSerialUSB::flushTX(void) { }
void MarlinSerialUSB::flush() { }
void MarlinSerialUSB::flushTX() { }
void MarlinSerialUSB::write(const uint8_t c) {
@@ -186,7 +183,7 @@ void MarlinSerialUSB::print(double n, int digits) {
printFloat(n, digits);
}
void MarlinSerialUSB::println(void) {
void MarlinSerialUSB::println() {
print('\r');
print('\n');
}
@@ -43,11 +43,11 @@ public:
MarlinSerialUSB() {};
static void begin(const long);
static void end();
static int peek(void);
static int read(void);
static void flush(void);
static void flushTX(void);
static bool available(void);
static int peek();
static int read();
static void flush();
static void flushTX();
static bool available();
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(void);
static void println();
operator bool() { return true; }
private:
@@ -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(void) { Servo_Handler(_timer1, TC_FOR_TIMER1, CHANNEL_FOR_TIMER1); }
void HANDLER_FOR_TIMER1() { Servo_Handler(_timer1, TC_FOR_TIMER1, CHANNEL_FOR_TIMER1); }
#endif
#ifdef _useTimer2
void HANDLER_FOR_TIMER2(void) { Servo_Handler(_timer2, TC_FOR_TIMER2, CHANNEL_FOR_TIMER2); }
void HANDLER_FOR_TIMER2() { Servo_Handler(_timer2, TC_FOR_TIMER2, CHANNEL_FOR_TIMER2); }
#endif
#ifdef _useTimer3
void HANDLER_FOR_TIMER3(void) { Servo_Handler(_timer3, TC_FOR_TIMER3, CHANNEL_FOR_TIMER3); }
void HANDLER_FOR_TIMER3() { Servo_Handler(_timer3, TC_FOR_TIMER3, CHANNEL_FOR_TIMER3); }
#endif
#ifdef _useTimer4
void HANDLER_FOR_TIMER4(void) { Servo_Handler(_timer4, TC_FOR_TIMER4, CHANNEL_FOR_TIMER4); }
void HANDLER_FOR_TIMER4() { Servo_Handler(_timer4, TC_FOR_TIMER4, CHANNEL_FOR_TIMER4); }
#endif
#ifdef _useTimer5
void HANDLER_FOR_TIMER5(void) { Servo_Handler(_timer5, TC_FOR_TIMER5, CHANNEL_FOR_TIMER5); }
void HANDLER_FOR_TIMER5() { Servo_Handler(_timer5, TC_FOR_TIMER5, CHANNEL_FOR_TIMER5); }
#endif
void Servo_Handler(timer16_Sequence_t timer, Tc *tc, uint8_t channel) {
+2 -2
View File
@@ -36,8 +36,8 @@
//!#define _useTimer4
#define _useTimer5
#define TRIM_DURATION 2 // compensation ticks to trim adjust for digitalWrite delays
#define PRESCALER 32 // timer prescaler
#define TRIM_DURATION 2 // compensation ticks to trim adjust for digitalWrite delays
#define SERVO_TIMER_PRESCALER 32 // timer prescaler
/*
TC0, chan 0 => TC0_Handler
+3 -1
View File
@@ -5,6 +5,8 @@
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* SAMD51 HAL developed by Giuliano Zaro (AKA GMagician)
*
* 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
@@ -29,7 +31,7 @@
#include "../../inc/MarlinConfig.h"
#include "HAL.h"
#include "HAL_timers_Due.h"
#include "timers.h"
static pin_t tone_pin;
volatile static int32_t toggles;
@@ -71,7 +71,7 @@ void spiSend(uint8_t b);
void spiSend(const uint8_t* buf, size_t n);
#include "../../shared/Marduino.h"
#include "../fastio_Due.h"
#include "../fastio.h"
void u8g_SetPIOutput_DUE_hw_spi(u8g_t *u8g, uint8_t pin_index) {
PIO_Configure(g_APinDescription[u8g->pin_list[pin_index]].pPort, PIO_OUTPUT_1,
@@ -23,6 +23,7 @@
#include "../../../inc/MarlinConfigPre.h"
#include "../../shared/Marduino.h"
#include <U8glib.h>
void u8g_SetPIOutput_DUE(u8g_t *u8g, uint8_t pin_index);
void u8g_SetPILevel_DUE(u8g_t *u8g, uint8_t pin_index, uint8_t level);
+14 -13
View File
@@ -38,45 +38,46 @@
#include "../../module/endstops.h"
// One ISR for all EXT-Interrupts
void endstop_ISR(void) { endstops.update(); }
void endstop_ISR() { endstops.update(); }
/**
* Endstop interrupts for Due based targets.
* On Due, all pins support external interrupt capability.
*/
void setup_endstop_interrupts(void) {
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
#if HAS_X_MAX
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
_ATTACH(X_MAX_PIN);
#endif
#if HAS_X_MIN
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(X_MIN_PIN);
#endif
#if HAS_Y_MAX
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Y_MAX_PIN);
#endif
#if HAS_Y_MIN
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Y_MIN_PIN);
#endif
#if HAS_Z_MAX
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MAX_PIN);
#endif
#if HAS_Z_MIN
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MIN_PIN);
#endif
#if HAS_Z2_MAX
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z2_MAX_PIN);
#endif
#if HAS_Z2_MIN
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z2_MIN_PIN);
#endif
#if HAS_Z3_MAX
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z3_MAX_PIN);
#endif
#if HAS_Z3_MIN
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z3_MIN_PIN);
#endif
#if HAS_Z_MIN_PROBE_PIN
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MIN_PROBE_PIN);
#endif
}
@@ -70,7 +70,7 @@
const uint32_t mask = MASK(DIO ## IO ## _PIN); \
if (V) port->PIO_SODR = mask; \
else port->PIO_CODR = mask; \
} while(0)
}while(0)
// Toggle a pin
#define _TOGGLE(IO) _WRITE(IO, !READ(IO))
@@ -33,7 +33,7 @@
#define E2END 0xFFF // Default to Flash emulated EEPROM size (EepromEmulation_Due.cpp)
#endif
extern void eeprom_flush(void);
extern void eeprom_flush();
bool PersistentStore::access_start() { return true; }
@@ -34,7 +34,7 @@
#include "../../inc/MarlinConfig.h"
#include "HAL.h"
#include "HAL_timers_Due.h"
#include "timers.h"
// ------------------------
// Local defines
@@ -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
{ TC1, 0, TC3_IRQn, 0}, // 3 - stepper for BOARD_ARCHIM1
{ TC1, 1, TC4_IRQn, 15}, // 4 - temperature
{ TC1, 2, TC5_IRQn, 3}, // 5 - [servo timer3]
{ TC2, 0, TC6_IRQn, 14}, // 6 - tone
@@ -39,7 +39,9 @@ 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
@@ -61,7 +63,9 @@ 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() void TC2_Handler()
#ifndef HAL_STEP_TIMER_ISR
#define HAL_STEP_TIMER_ISR() void TC2_Handler()
#endif
#define HAL_TEMP_TIMER_ISR() void TC4_Handler()
#define HAL_TONE_TIMER_ISR() void TC6_Handler()
+9 -9
View File
@@ -112,7 +112,7 @@
* \def unused
* \brief Marking \a v as a unused parameter or value.
*/
#define unused(v) do { (void)(v); } while(0)
#define unused(v) do { (void)(v); }while(0)
/**
* \def barrier
@@ -169,7 +169,7 @@
* heuristics and inline the function no matter how big it thinks it
* becomes.
*/
#if defined(__CC_ARM)
#ifdef __CC_ARM
# define __always_inline __forceinline
#elif (defined __GNUC__)
#ifdef __always_inline
@@ -187,7 +187,7 @@
* This annotation instructs the compiler to ignore its inlining
* heuristics and not inline the function.
*/
#if defined(__CC_ARM)
#ifdef __CC_ARM
# define __no_inline __attribute__((noinline))
#elif (defined __GNUC__)
# define __no_inline __attribute__((__noinline__))
@@ -204,7 +204,7 @@
*
* \param expr Expression to evaluate and supposed to be nonzero.
*/
#if defined(_ASSERT_ENABLE_)
#ifdef _ASSERT_ENABLE_
# if defined(TEST_SUITE_DEFINE_ASSERT_MACRO)
// Assert() is defined in unit_test/suite.h
# include "unit_test/suite.h"
@@ -230,7 +230,7 @@
/* Define NO_INIT attribute */
#if 0 //ndef NO_INIT
#if defined ( __CC_ARM )
#ifdef __CC_ARM
# define NO_INIT __attribute__((zero_init))
#elif defined ( __ICCARM__ )
# define NO_INIT __no_init
@@ -262,7 +262,7 @@
//! @{
typedef unsigned char Bool; //!< Boolean.
#ifndef __cplusplus
#if !defined(__bool_true_false_are_defined)
#ifndef __bool_true_false_are_defined
typedef unsigned char bool; //!< Boolean.
#endif
#endif
@@ -443,7 +443,7 @@ typedef struct
#define DISABLE 0
#define ENABLE 1
#ifndef __cplusplus
#if !defined(__bool_true_false_are_defined)
#ifndef __bool_true_false_are_defined
#define false 0
#define true 1
#endif
@@ -998,14 +998,14 @@ typedef U8 Byte; //!< 8-bit unsigned integer.
#endif // #ifndef __ASSEMBLY__
#if defined(__ICCARM__)
#ifdef __ICCARM__
#define SHORTENUM __packed
#elif defined(__GNUC__)
#define SHORTENUM __attribute__((packed))
#endif
/* No operation */
#if defined(__ICCARM__)
#ifdef __ICCARM__
#define nop() __no_operation()
#elif defined(__GNUC__)
#define nop() (__NOP())
+5 -5
View File
@@ -61,27 +61,27 @@ extern "C" {
* Below BOARD_XXX macros are related to the specific board, and
* should be defined by the board code, otherwise default value are used.
*/
#if !defined(BOARD_FREQ_SLCK_XTAL)
#ifndef BOARD_FREQ_SLCK_XTAL
# warning The board slow clock xtal frequency has not been defined.
# define BOARD_FREQ_SLCK_XTAL (32768UL)
#endif
#if !defined(BOARD_FREQ_SLCK_BYPASS)
#ifndef BOARD_FREQ_SLCK_BYPASS
# warning The board slow clock bypass frequency has not been defined.
# define BOARD_FREQ_SLCK_BYPASS (32768UL)
#endif
#if !defined(BOARD_FREQ_MAINCK_XTAL)
#ifndef BOARD_FREQ_MAINCK_XTAL
# warning The board main clock xtal frequency has not been defined.
# define BOARD_FREQ_MAINCK_XTAL (12000000UL)
#endif
#if !defined(BOARD_FREQ_MAINCK_BYPASS)
#ifndef BOARD_FREQ_MAINCK_BYPASS
# warning The board main clock bypass frequency has not been defined.
# define BOARD_FREQ_MAINCK_BYPASS (12000000UL)
#endif
#if !defined(BOARD_OSC_STARTUP_US)
#ifndef BOARD_OSC_STARTUP_US
# warning The board main clock xtal startup time has not been defined.
# define BOARD_OSC_STARTUP_US (15625UL)
#endif
+10 -17
View File
@@ -15,11 +15,11 @@ extern "C" {
#define SD_MMC_BLOCK_SIZE 512
void sd_mmc_spi_mem_init(void) {
void sd_mmc_spi_mem_init() {
}
Ctrl_status sd_mmc_spi_test_unit_ready(void) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
Ctrl_status sd_mmc_spi_test_unit_ready() {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT;
return CTRL_GOOD;
}
@@ -27,25 +27,18 @@ Ctrl_status sd_mmc_spi_test_unit_ready(void) {
// 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.isDetected())
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT;
*nb_sector = card.getSd2Card().cardSize() - 1;
return CTRL_GOOD;
}
bool sd_mmc_spi_unload(bool unload) {
UNUSED(unload);
return true;
}
bool sd_mmc_spi_unload(bool) { return true; }
bool sd_mmc_spi_wr_protect(void) {
return false;
}
bool sd_mmc_spi_wr_protect() { return false; }
bool sd_mmc_spi_removal(void) {
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
return true;
return false;
bool sd_mmc_spi_removal() {
return (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted());
}
#if ACCESS_USB == true
@@ -62,7 +55,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.isDetected())
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT;
#ifdef DEBUG_MMC
@@ -99,7 +92,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.isDetected())
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isMounted())
return CTRL_NO_PRESENT;
#ifdef DEBUG_MMC
+3 -3
View File
@@ -43,12 +43,12 @@
* \asf_license_stop
*
*/
/*
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
*/
#ifndef _SPC_PROTOCOL_H_
#define _SPC_PROTOCOL_H_
#ifndef _SPC_PROTOCOL_H_
#define _SPC_PROTOCOL_H_
/**
* \ingroup usb_msc_protocol
+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;
//@}
+1 -1
View File
@@ -55,7 +55,7 @@
#include "udi.h"
// Check the number of port
#ifndef UDI_CDC_PORT_NB
#ifndef UDI_CDC_PORT_NB
# define UDI_CDC_PORT_NB 1
#endif
#if (UDI_CDC_PORT_NB < 1) || (UDI_CDC_PORT_NB > 7)
+1 -1
View File
@@ -50,7 +50,7 @@
#include "usb_protocol_cdc.h"
#include "conf_usb.h"
#ifndef UDI_CDC_PORT_NB
#ifndef UDI_CDC_PORT_NB
# define UDI_CDC_PORT_NB 1
#endif
@@ -24,7 +24,7 @@
#include "../../inc/MarlinConfig.h"
#include "../../Marlin.h"
#include "watchdog_Due.h"
#include "watchdog.h"
// Override Arduino runtime to either config or disable the watchdog
//
@@ -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) {
void watchdogSetup() {
#if ENABLED(USE_WATCHDOG)
@@ -106,7 +106,7 @@ void watchdogSetup(void) {
// 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) {
void watchdog_init() {
// Reset watchdog to start clean
WDT_Restart(WDT);
}
@@ -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 watchdog_reset() { watchdogReset(); }
inline void HAL_watchdog_refresh() { watchdogReset(); }
@@ -29,7 +29,7 @@ class FlushableHardwareSerial : public HardwareSerial {
public:
FlushableHardwareSerial(int uart_nr);
inline void flushTX(void) { /* No need to flush the hardware serial, but defined here for compatibility. */ }
inline void flushTX() { /* No need to flush the hardware serial, but defined here for compatibility. */ }
};
extern FlushableHardwareSerial flushableSerial;
+6 -6
View File
@@ -23,7 +23,7 @@
#ifdef ARDUINO_ARCH_ESP32
#include "HAL.h"
#include "HAL_timers_ESP32.h"
#include "timers.h"
#include <rom/rtc.h>
#include <driver/adc.h>
#include <esp_adc_cal.h>
@@ -78,11 +78,11 @@ volatile int numPWMUsed = 0,
// Public functions
// ------------------------
void HAL_init(void) {
void HAL_init() {
i2s_init();
}
void HAL_init_board(void) {
void HAL_init_board() {
#if EITHER(EEPROM_SETTINGS, WEBSUPPORT)
spiffs_init();
#endif
@@ -99,15 +99,15 @@ void HAL_init_board(void) {
#endif
}
void HAL_idletask(void) {
void HAL_idletask() {
#if ENABLED(OTASUPPORT)
OTA_handle();
#endif
}
void HAL_clear_reset_source(void) { }
void HAL_clear_reset_source() { }
uint8_t HAL_get_reset_source(void) { return rtc_get_reset_reason(1); }
uint8_t HAL_get_reset_source() { return rtc_get_reset_reason(1); }
void _delay_ms(int delay_ms) { delay(delay_ms); }
+13 -10
View File
@@ -30,11 +30,11 @@
#include "../shared/math_32bit.h"
#include "../shared/HAL_SPI.h"
#include "fastio_ESP32.h"
#include "watchdog_ESP32.h"
#include "fastio.h"
#include "watchdog.h"
#include "i2s.h"
#include "HAL_timers_ESP32.h"
#include "timers.h"
#include "WebSocketSerial.h"
#include "FlushableHardwareSerial.h"
@@ -85,14 +85,17 @@ extern uint16_t HAL_adc_result;
// ------------------------
// clear reset reason
void HAL_clear_reset_source (void);
void HAL_clear_reset_source();
// reset reason
uint8_t HAL_get_reset_source(void);
uint8_t HAL_get_reset_source();
void _delay_ms(int delay);
int freeMemory(void);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
#pragma GCC diagnostic pop
void analogWrite(pin_t pin, int value);
@@ -105,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);
void HAL_adc_init();
#define HAL_START_ADC(pin) HAL_adc_start_conversion(pin)
#define HAL_READ_ADC() HAL_adc_result
@@ -120,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);
void HAL_init(void);
void HAL_init_board(void);
void HAL_idletask();
void HAL_init();
void HAL_init_board();
@@ -27,9 +27,10 @@
#include "../shared/HAL_SPI.h"
#include <pins_arduino.h>
#include "spi_pins.h"
#include "../../core/macros.h"
#include <SPI.h>
#include "../../core/macros.h"
// ------------------------
// Public Variables
// ------------------------
@@ -79,7 +80,7 @@ void spiInit(uint8_t spiRate) {
SPI.begin();
}
uint8_t spiRec(void) {
uint8_t spiRec() {
SPI.beginTransaction(spiConfig);
uint8_t returnByte = SPI.transfer(0xFF);
SPI.endTransaction();
@@ -25,32 +25,32 @@
#if HAS_SERVOS
#include "HAL_Servo_ESP32.h"
#include "Servo.h"
// Adjacent channels (0/1, 2/3 etc.) share the same timer and therefore the same frequency and resolution settings on ESP32,
// so we only allocate servo channels up high to avoid side effects with regards to analogWrite (fans, leds, laser pwm etc.)
int Servo::channel_next_free = 12;
Servo::Servo() {
this->channel = channel_next_free++;
channel = channel_next_free++;
}
int8_t Servo::attach(const int pin) {
if (this->channel >= CHANNEL_MAX_NUM) return -1;
if (pin > 0) this->pin = pin;
int8_t Servo::attach(const int inPin) {
if (channel >= CHANNEL_MAX_NUM) return -1;
if (pin > 0) pin = inPin;
ledcSetup(this->channel, 50, 16); // channel X, 50 Hz, 16-bit depth
ledcAttachPin(this->pin, this->channel);
ledcSetup(channel, 50, 16); // channel X, 50 Hz, 16-bit depth
ledcAttachPin(pin, channel);
return true;
}
void Servo::detach() { ledcDetachPin(this->pin); }
void Servo::detach() { ledcDetachPin(pin); }
int Servo::read() { return this->degrees; }
int Servo::read() { return degrees; }
void Servo::write(int inDegrees) {
this->degrees = constrain(inDegrees, MIN_ANGLE, MAX_ANGLE);
int us = map(this->degrees, MIN_ANGLE, MAX_ANGLE, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
degrees = constrain(inDegrees, MIN_ANGLE, MAX_ANGLE);
int us = map(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 (this->attach(0) >= 0) {
this->write(value);
safe_delay(servo_delay[this->channel]);
if (attach(0) >= 0) {
write(value);
safe_delay(servo_delay[channel]);
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
this->detach();
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(void) {
int RingBuffer::available() {
return (size - read_index + write_index) & (size - 1);
}
int RingBuffer::peek(void) {
int RingBuffer::peek() {
return available() ? data[read_index] : -1;
}
int RingBuffer::read(void) {
int RingBuffer::read() {
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(void) { read_index = write_index; }
void RingBuffer::flush() { 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(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(); }
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(); }
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) {
void WebSocketSerial::flushTX() {
// 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(void);
int peek(void);
int read(void);
int available();
int peek();
int read();
ring_buffer_pos_t read(uint8_t *buffer);
void flush(void);
void flush();
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(void);
int peek(void);
int read(void);
void flush(void);
void flushTX(void);
int available();
int peek();
int read();
void flush();
void flushTX();
size_t write(const uint8_t c);
size_t write(const uint8_t* buffer, size_t size);
+14 -13
View File
@@ -38,40 +38,41 @@
#include "../../module/endstops.h"
// One ISR for all EXT-Interrupts
void ICACHE_RAM_ATTR endstop_ISR(void) { endstops.update(); }
void ICACHE_RAM_ATTR endstop_ISR() { endstops.update(); }
void setup_endstop_interrupts(void) {
void setup_endstop_interrupts() {
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
#if HAS_X_MAX
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(X_MAX_PIN);
#endif
#if HAS_X_MIN
attachInterrupt(digitalPinToInterrupt(X_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(X_MIN_PIN);
#endif
#if HAS_Y_MAX
attachInterrupt(digitalPinToInterrupt(Y_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Y_MAX_PIN);
#endif
#if HAS_Y_MIN
attachInterrupt(digitalPinToInterrupt(Y_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Y_MIN_PIN);
#endif
#if HAS_Z_MAX
attachInterrupt(digitalPinToInterrupt(Z_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MAX_PIN);
#endif
#if HAS_Z_MIN
attachInterrupt(digitalPinToInterrupt(Z_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MIN_PIN);
#endif
#if HAS_Z2_MAX
attachInterrupt(digitalPinToInterrupt(Z2_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z2_MAX_PIN);
#endif
#if HAS_Z2_MIN
attachInterrupt(digitalPinToInterrupt(Z2_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z2_MIN_PIN);
#endif
#if HAS_Z3_MAX
attachInterrupt(digitalPinToInterrupt(Z3_MAX_PIN), endstop_ISR, CHANGE);
_ATTACH(Z3_MAX_PIN);
#endif
#if HAS_Z3_MIN
attachInterrupt(digitalPinToInterrupt(Z3_MIN_PIN), endstop_ISR, CHANGE);
_ATTACH(Z3_MIN_PIN);
#endif
#if HAS_Z_MIN_PROBE_PIN
attachInterrupt(digitalPinToInterrupt(Z_MIN_PROBE_PIN), endstop_ISR, CHANGE);
_ATTACH(Z_MIN_PROBE_PIN);
#endif
}
@@ -30,7 +30,7 @@
#include "HAL.h"
#include "HAL_timers_ESP32.h"
#include "timers.h"
// ------------------------
// Local defines
@@ -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(void)
#define HAL_STEP_TIMER_ISR() extern "C" void stepTC_Handler(void)
#define HAL_PWM_TIMER_ISR() extern "C" void pwmTC_Handler(void)
#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()
extern "C" void tempTC_Handler(void);
extern "C" void stepTC_Handler(void);
extern "C" void pwmTC_Handler(void);
extern "C" void tempTC_Handler();
extern "C" void stepTC_Handler();
extern "C" void pwmTC_Handler();
// ------------------------
// Types
@@ -95,7 +95,7 @@ typedef struct {
timer_group_t group;
timer_idx_t idx;
uint32_t divider;
void (*fn)(void);
void (*fn)();
} tTimerConfig;
// ------------------------
@@ -26,13 +26,13 @@
#if ENABLED(USE_WATCHDOG)
#include "watchdog_ESP32.h"
#include "watchdog.h"
void watchdogSetup(void) {
void watchdogSetup() {
// do whatever. don't remove this function.
}
void watchdog_init(void) {
void watchdog_init() {
// TODO
}
@@ -25,4 +25,4 @@
void watchdog_init();
// Reset watchdog.
inline void watchdog_reset() { }
inline void HAL_watchdog_refresh() {}
+4 -2
View File
@@ -22,16 +22,18 @@
#ifdef ARDUINO_ARCH_ESP32
#include <SPIFFS.h>
#undef DISABLED // esp32-hal-gpio.h
#include "../../inc/MarlinConfigPre.h"
#if ENABLED(WEBSUPPORT)
#include <SPIFFS.h>
#include "wifi.h"
AsyncEventSource events("/events"); // event source (Server-Sent events)
void onNotFound(AsyncWebServerRequest *request){
void onNotFound(AsyncWebServerRequest *request) {
request->send(404);
}
+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(void) {
extern "C" void u8g_MicroDelay() {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay(void) {
extern "C" void u8g_10MicroDelay() {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
@@ -51,7 +51,7 @@ int freeMemory() {
// ADC
// ------------------------
void HAL_adc_init(void) {
void HAL_adc_init() {
}
@@ -64,18 +64,18 @@ void HAL_adc_start_conversion(const uint8_t ch) {
active_ch = ch;
}
bool HAL_adc_finished(void) {
bool HAL_adc_finished() {
return true;
}
uint16_t HAL_adc_get_result(void) {
uint16_t HAL_adc_get_result() {
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) {
void HAL_pwm_init() {
}
+12 -13
View File
@@ -56,7 +56,7 @@ uint8_t _getc();
#include "../shared/HAL_SPI.h"
#include "fastio.h"
#include "watchdog.h"
#include "HAL_timers.h"
#include "timers.h"
#include "serial.h"
#define SHARED_SERVOS HAS_SERVOS
@@ -78,18 +78,13 @@ extern HalSerial usb_serial;
#define ENABLE_ISRS()
#define DISABLE_ISRS()
inline void HAL_init(void) { }
inline void HAL_init() {}
// Utility functions
int freeMemory(void);
// SPI: Extended functions which take a channel number (hardware SPI only)
/** Write single byte to specified SPI channel */
void spiSend(uint32_t chan, byte b);
/** Write buffer to specified SPI channel */
void spiSend(uint32_t chan, const uint8_t* buf, size_t n);
/** Read single byte from specified SPI channel */
uint8_t spiRec(uint32_t chan);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
int freeMemory();
#pragma GCC diagnostic pop
// ADC
#define HAL_ANALOG_SELECT(pin) HAL_adc_enable_channel(pin)
@@ -97,10 +92,14 @@ uint8_t spiRec(uint32_t chan);
#define HAL_READ_ADC() HAL_adc_get_result()
#define HAL_ADC_READY() true
void HAL_adc_init(void);
void HAL_adc_init();
void HAL_adc_enable_channel(int pin);
void HAL_adc_start_conversion(const uint8_t adc_pin);
uint16_t HAL_adc_get_result(void);
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; }
/* ---------------- Delay in cycles */
FORCE_INLINE static void DELAY_CYCLES(uint64_t x) {
+3 -3
View File
@@ -28,8 +28,8 @@
#include "../shared/Delay.h"
// Interrupts
void cli(void) { } // Disable
void sei(void) { } // Enable
void cli() { } // Disable
void sei() { } // Enable
// Time functions
void _delay_ms(const int delay_ms) {
@@ -90,7 +90,7 @@ void eeprom_read_block(void *__dst, const void *__src, size_t __n) { }
void eeprom_update_block(const void *__src, void *__dst, size_t __n) { }
char *dtostrf (double __val, signed char __width, unsigned char __prec, char *__s) {
char *dtostrf(double __val, signed char __width, unsigned char __prec, char *__s) {
char format_string[20];
snprintf(format_string, 20, "%%%d.%df", __width, __prec);
sprintf(__s, format_string, __val);
+6 -8
View File
@@ -49,8 +49,6 @@ typedef uint8_t byte;
#define PGM_P const char *
// Used for libraries, preprocessor, and constants
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(x) ((x)>0?(x):-(x))
#ifndef isnan
@@ -65,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(void); // Disable
void sei(void); // Enable
void attachInterrupt(uint32_t pin, void (*callback)(void), uint32_t mode);
void cli(); // Disable
void sei(); // Enable
void attachInterrupt(uint32_t pin, void (*callback)(), 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);
@@ -111,13 +109,13 @@ uint16_t analogRead(pin_t);
// EEPROM
void eeprom_write_byte(unsigned char *pos, unsigned char value);
unsigned char eeprom_read_byte(unsigned char *pos);
void eeprom_read_block (void *__dst, const void *__src, size_t __n);
void eeprom_update_block (const void *__src, void *__dst, size_t __n);
void eeprom_read_block(void *__dst, const void *__src, size_t __n);
void eeprom_update_block(const void *__src, void *__dst, size_t __n);
int32_t random(int32_t);
int32_t random(int32_t, int32_t);
void randomSeed(uint32_t);
char *dtostrf (double __val, signed char __width, unsigned char __prec, char *__s);
char *dtostrf(double __val, signed char __width, unsigned char __prec, char *__s);
int map(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max);
+9 -9
View File
@@ -83,9 +83,9 @@ public:
HalSerial() { host_connected = true; }
void begin(int32_t baud) { }
void begin(int32_t) {}
void end() { }
void end() {}
int peek() {
uint8_t value;
@@ -108,11 +108,11 @@ public:
void flush() { receive_buffer.clear(); }
uint8_t availableForWrite(void){
uint8_t availableForWrite() {
return transmit_buffer.free() > 255 ? 255 : (uint8_t)transmit_buffer.free();
}
void flushTX(void){
void flushTX() {
if (host_connected)
while (transmit_buffer.available()) { /* nada */ }
}
@@ -142,10 +142,10 @@ public:
void print_bin(uint32_t value, uint8_t num_digits) {
uint32_t mask = 1 << (num_digits -1);
for (uint8_t i = 0; i < num_digits; i++) {
if (!(i % 4) && i) write(' ');
if (!(i % 16) && i) write(' ');
if (value & mask) write('1');
else write('0');
if (!(i % 4) && i) write(' ');
if (!(i % 16) && i) write(' ');
if (value & mask) write('1');
else write('0');
value <<= 1;
}
}
@@ -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(void) { print('\n'); }
void println() { 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(void) {
int main() {
std::thread write_serial (write_serial_thread);
std::thread read_serial (read_serial_thread);
@@ -61,7 +61,7 @@ bool PersistentStore::access_finish() {
return true;
}
bool PersistentStore::write_data(int &pos, const uint8_t *value, const size_t size, uint16_t *crc) {
bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, uint16_t *crc) {
std::size_t bytes_written = 0;
for (std::size_t i = 0; i < size; i++) {
@@ -25,7 +25,7 @@
#include "hardware/Timer.h"
#include "../../inc/MarlinConfig.h"
#include "HAL_timers.h"
#include "timers.h"
/**
* Use POSIX signals to attempt to emulate Interrupts
@@ -37,7 +37,7 @@ HAL_TEMP_TIMER_ISR();
Timer timers[2];
void HAL_timer_init(void) {
void HAL_timer_init() {
timers[0].init(0, STEPPER_TIMER_RATE, TIMER0_IRQHandler);
timers[1].init(1, TEMP_TIMER_RATE, TIMER1_IRQHandler);
}
@@ -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(void)
#define HAL_TEMP_TIMER_ISR() extern "C" void TIMER1_IRQHandler(void)
#define HAL_STEP_TIMER_ISR() extern "C" void TIMER0_IRQHandler()
#define HAL_TEMP_TIMER_ISR() extern "C" void TIMER1_IRQHandler()
// PWM timer
#define HAL_PWM_TIMER
#define HAL_PWM_TIMER_ISR() extern "C" void TIMER3_IRQHandler(void)
#define HAL_PWM_TIMER_ISR() extern "C" void TIMER3_IRQHandler()
#define HAL_PWM_TIMER_IRQn
void HAL_timer_init(void);
void HAL_timer_init();
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);
+3 -13
View File
@@ -28,19 +28,9 @@
#include "watchdog.h"
void watchdog_init(void) {}
void watchdog_init() {}
void HAL_watchdog_refresh() {}
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
#endif // __PLAT_LINUX__
+2 -4
View File
@@ -23,7 +23,5 @@
#define WDT_TIMEOUT 4000000 // 4 second timeout
void watchdog_init(void);
void watchdog_reset(void);
void HAL_clear_reset_source(void);
uint8_t HAL_get_reset_source(void);
void watchdog_init();
void HAL_watchdog_refresh();
@@ -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(void) {
static void TXBegin() {
}
// 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(void) {
__attribute__((naked)) void NMI_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -223,7 +223,7 @@ __attribute__((naked)) void NMI_Handler(void) {
);
}
__attribute__((naked)) void HardFault_Handler(void) {
__attribute__((naked)) void HardFault_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -236,7 +236,7 @@ __attribute__((naked)) void HardFault_Handler(void) {
);
}
__attribute__((naked)) void MemManage_Handler(void) {
__attribute__((naked)) void MemManage_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -249,7 +249,7 @@ __attribute__((naked)) void MemManage_Handler(void) {
);
}
__attribute__((naked)) void BusFault_Handler(void) {
__attribute__((naked)) void BusFault_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -262,7 +262,7 @@ __attribute__((naked)) void BusFault_Handler(void) {
);
}
__attribute__((naked)) void UsageFault_Handler(void) {
__attribute__((naked)) void UsageFault_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -275,7 +275,7 @@ __attribute__((naked)) void UsageFault_Handler(void) {
);
}
__attribute__((naked)) void DebugMon_Handler(void) {
__attribute__((naked)) void DebugMon_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -289,7 +289,7 @@ __attribute__((naked)) void DebugMon_Handler(void) {
}
/* This is NOT an exception, it is an interrupt handler - Nevertheless, the framing is the same */
__attribute__((naked)) void WDT_IRQHandler(void) {
__attribute__((naked)) void WDT_IRQHandler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")
@@ -302,7 +302,7 @@ __attribute__((naked)) void WDT_IRQHandler(void) {
);
}
__attribute__((naked)) void RSTC_Handler(void) {
__attribute__((naked)) void RSTC_Handler() {
__asm__ __volatile__ (
".syntax unified" "\n\t"
A("tst lr, #4")

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