Commit Graph

20 Commits

Author SHA1 Message Date
David A. Mellis 6b5d027eef Changing from long to ssize_t (int) for write(), print(), println() return. 2011-08-26 14:20:41 -04:00
David A. Mellis 9cb0caa376 write(), print(), and println() now return number of bytes written.
The type is long, and negative values indicate errors.  Needs more testing.
http://code.google.com/p/arduino/issues/detail?id=551
2011-08-23 19:12:03 -04:00
David A. Mellis 5927754a86 Fixing 300 baud communication for serial.
Because UBBR is only 12 bits, we were overflowing it at 300 baud because of the use of the U2X bit.  Now we turn off U2X if it would yield a UBBR value that would overflow.

Note that this breaks 300 baud communication with the computer on the Uno and Mega 2560 because the 8U2 USB-serial firmware has this same bug (and previously they cancelled each other out).  Since, however, it seems more likely that people will need to use 300 baud to communicate with other (legacy) hardware than with the computer, I'm making this change.  Issue for 8U2 firmware bug: http://code.google.com/p/arduino/issues/detail?id=542

http://code.google.com/p/arduino/issues/detail?id=522
2011-05-20 13:29:13 -04:00
David A. Mellis 0e4cababb6 Small optimization in HardwareSerial.
begin(long) -> begin(unsigned long)

Conflicts:

	hardware/arduino/cores/arduino/HardwareSerial.h
2011-05-12 16:58:56 -04:00
David A. Mellis d110004584 Adding serialEvent(), serialEvent1(), etc.
Called from within the serial receive interrupt.  These are implemented as an empty weak function in the core that be overridden by the user's sketch.

http://code.google.com/p/arduino/issues/detail?id=263
2011-05-07 13:04:13 -04:00
David A. Mellis 5b160ab194 Refactoring the UART0 / USART0 receive interrupt handler. 2011-05-07 12:47:43 -04:00
David A. Mellis a770593e6f Changing Serial.flush() to write outgoing data, not drop incoming data.
This brings it in line with most other uses of flush(), both in and out of Arduino.
http://code.google.com/p/arduino/issues/detail?id=497
2011-05-07 12:05:27 -04:00
David A. Mellis d9772552cd Flushing outgoing and incoming data in Serial.end().
That is, waiting for outgoing data to transmit and dropping any received data.
2011-03-06 12:20:42 -05:00
David A. Mellis 5a194a2e2c Fixing race condition in Serial write (Brian Cook). 2011-03-06 11:47:18 -05:00
David A. Mellis ca97a74b43 Implemented serial transmit buffering.
Now Serial.write() places characters in the transmit buffer, and the data register empty interrupt reads and transmit them.  Based loosely on the implementation here: ftp://wookey.org.uk/arduino.

http://code.google.com/p/arduino/issues/detail?id=262
2011-03-05 14:17:26 -05:00
David A. Mellis 1ae0c3a889 Moving wiring.h contents into Arduino.h. 2011-03-01 20:00:16 -05:00
David A. Mellis c2b4efce22 Cast to encourage optimization of Serial ring buffer index calculations.
http://code.google.com/p/arduino/issues/detail?id=391
2010-11-11 23:29:21 -05:00
David A. Mellis 5cb3a4f36e Changing baud rate calculation to always use double speed mode except for 57600 baud at 16 MHz.
http://code.google.com/p/arduino/issues/detail?id=394
2010-11-11 23:28:21 -05:00
David A. Mellis 0db7740a45 Making HardwareSerial tests register-based, not CPU-based.
Mark Sproul's patches, via Christian Maglie.
http://code.google.com/p/arduino/issues/detail?id=315
2010-10-17 13:36:02 -04:00
David A. Mellis ce1f3f8b89 1280 -> 1280/2560. 2010-09-08 22:33:33 +00:00
David A. Mellis c7eedf5fa5 changing available() to return an int (because the Ethernet Client class or another stream might need more than 255 bytes). 2010-08-02 22:23:48 +00:00
David A. Mellis d7c2a6f0f9 Adding a peek() function to Stream and HardwareSerial (Serial). 2010-07-04 23:31:55 +00:00
David A. Mellis a1a3978adb Adding support for printing Strings to the Print class. 2010-07-04 23:22:34 +00:00
David A. Mellis fb9e5eea65 Adding Serial.end(). 2009-12-23 00:00:17 +00:00
David A. Mellis c312943ef4 Improving third-party hardware support:
- moving back to multple cores per platform
- using target instead of platform
- moving per-board and per-programmer preferences out of Preferences.java and into a new Target class
- adding a new "target" preference
- support for platform:value values in board preferences for bootloader path and core
- XXX: need to support platform:value syntax for board upload.using preferences.
2009-11-21 23:23:43 +00:00