34 Commits (67ca6c7bfe83f7bdf757b2842abe6d926e7cd721)

Author SHA1 Message Date
Scott Lahteine 14395a1a96 Optimize, reduce size of MarlinSerial 8 years ago
Scott Lahteine b73203a0b7 Move some includes around to uncover missing deps 9 years ago
AnHardt 4b44a23a36 Add TX-buffer for MarlinSerial
Similar to the current Arduino HardwareSerial
but with max. 256 byte buffer-size.

Deactivated by default.

The boards with AT90USB processor (USBCON) already use a TX-buffer.
9 years ago
AnHardt a129078927 Add an emergency-command parser to MarlinSerial (supporting M108)
Add an emergency-command parser to MarlinSerial's RX interrupt.

The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.

To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.

This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".

The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.

One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"

Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.

Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
9 years ago
esenapaj 888443ca1e Enclose all #error strings with apostrophes 9 years ago
Scott Lahteine 0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
9 years ago
jbrazio 5e5d250832 Added gplv3 header to all Marlin files 9 years ago
AnHardt cb88fdd242 Protect MarlinSerial against interrupts
Protect MarlinSerial against interrupts
by shielding the CRITICAL_SECTIONs

Now with a test if RX_BUFFER_SIZE is in the required range.
Code in peek() and read() is now optimized for readability and showing the similarity between the two.

Maybe a bit overprotected in checkRx() and store_char(), but now some days without detected errors from this source.
9 years ago
AnHardt dc0f41868e Make rx tail/head atomic 9 years ago
Scott Lahteine 0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
9 years ago
Richard Wackerbarth 4b9d5cd352 Use lowercase names for serial instances 10 years ago
Scott Lahteine 1e2deff4fd Rename BTENABLED to BLUETOOTH
- For some reason it’s easy to forget what BT stands for, but it
doesn’t need an abbreviation.
10 years ago
Scott Lahteine 58cfcd4239 Overridable Options - Part 5
Apply `ENABLED` / `DISABLED` macros to files needing only a small
number of changes.
10 years ago
Richard Wackerbarth e83575537a Compiler defines USBCON for USB devices (PR#2433) 10 years ago
Scott Lahteine c065da52ec Spacing and spelling 10 years ago
Scott Lahteine c37f7d15c9 - Rename WRITE_E_STEP for consistency
- Add BIT and TEST macros
- Add _APPLY_ macros to stepper.cpp to help with consolidation
- Consolidate code in stepper.cpp using macros
- Apply standards in stepper.cpp
- Use >= 0 instead of > -1 as a better semantic
- Replace DUAL_Y_CARRIAGE with Y_DUAL_STEPPER_DRIVERS
10 years ago
Scott Lahteine fd78902194 Formatting cleanup of quiet sources 10 years ago
fmalpartida b5a964fcc5 Initial SAV MkI (RepRap CloneWars board) integration.
Included support for BT dongle on AT90USB boards.
Added LCD Shift Register LCD control
Included support for RepRap Clone Wars project board (SAV MKI).
11 years ago
Johann Rocholl 6cba11f087 Stop redefining MOTHERBOARD and #define AT90USB instead. Also put #ifndef AT90USB around the HardwareSerial_h trick, so now Printrboard / Brainwave support compiles on Arduino 1.0.2 as well. 12 years ago
Robert F-C 99692dc99e Clean up special serial port cases
Assume SERIAL_PORT 0 if not defined. Collapse un-numbered register
special case. Clarify comments.
12 years ago
daid303 5a998558a9 Update suggested by Robert F-C. #289 12 years ago
daid303 d3ebc34958 Hopefully also support chips with a single UART in MarlinSerial now. 12 years ago
Robert F-C ab9d183024 Make serial port configurable.
This change makes the choice of serial port configurable so that
wireless capability can be easily added by connecting Bluetooth modules
(such as BlueSmirf or JY-MCU) to the expansion port pins.
12 years ago
Erik van der Zalm 9173a5713b Teensylu support. 13 years ago
Bernhard 57f9359a41 simplified the includes, makefile now works with arduino23 13 years ago
Bernhard 7714b98da7 solved some compiler warnings that are now visible in arduino 1.0.
Found a couple of unused variables, that I commented.
Tried to solve the program memory warning message, and failed.
13 years ago
Bernhard b0c3871750 more fixing of the sanguino math round problem 13 years ago
Bernhard 9c57453168 removed stream.h referenece from marlinserial. 13 years ago
Bernhard 7a4be21b4f made it compile if arduino decides to include files in a differnt order. DEC HEX and stuff now defined in MarlinSerial.h 13 years ago
Bernhard b19c8b74b9 force inline 13 years ago
Bernhard 85da81e673 inlineing of small functions in serial 13 years ago
Bernhard b9ad0bb2ce removed unecessary indirect register adressing in serial. 13 years ago
Bernhard dd5ca68c87 get rid of indirect ringbuffer calls, made some inlines, removed virtual and streaming class requirements. 13 years ago
Erik van der Zalm f75f426dfa Removed interrupt nesting in the stepper ISR.
Add serial checkRx in stepper ISR.
Copied HardwareSerial to MarlinSerial (Needed for checkRx).
13 years ago