Matthijs Kooijman
bd194db4e3
Use bit_is_clear in HardwareSerial::flush()
...
This is slightly more clear than the previous explicit comparison.
2014-01-22 09:37:44 +01:00
Matthijs Kooijman
80d6af6273
Move interrupt handlers into HardwareSerial class
...
The actual interrupt vectors are of course defined as before, but they
let new methods in the HardwareSerial class do the actual work. This
greatly reduces code duplication and prepares for one of my next commits
which requires the tx interrupt handler to be called from another
context as well.
The actual content of the interrupts handlers was pretty much identical,
so that remains unchanged (except that store_char was now only needed
once, so it was inlined).
Now all access to the buffers are inside the HardwareSerial class, the
buffer variables can be made private.
One would expect a program size reduction from this change (at least
with multiple UARTs), but due to the fact that the interrupt handlers
now only have indirect access to a few registers (which previously were
just hardcoded in the handlers) and because there is some extra function
call overhead, the code size on the uno actually increases by around
70 bytes. On the mega, which has four UARTs, the code size decreases by
around 70 bytes.
2014-01-16 16:59:06 +01:00
Matthijs Kooijman
3babfc2a85
Use constants for register bit positions in HardwareSerial
...
Previously, the constants to use for the bit positions of the various
UARTs were passed to the HardwareSerial constructor. However, this
meant that whenever these values were used, the had to be indirectly
loaded, resulting in extra code overhead. Additionally, since there is
no instruction to shift a value by a variable amount, the 1 << x
expressions (inside _BV and sbi() / cbi()) would be compiled as a loop
instead of being evaluated at compiletime.
Now, the HardwareSerial class always uses the constants for the bit
positions of UART 0 (and some code is present to make sure these
constants exist, even for targets that only have a single unnumbered
UART or start at UART1).
This was already done for the TXC0 constant, for some reason. For the
actual register addresses, this approach does not work, since these are
of course different between the different UARTs on a single chip.
Of course, always using the UART 0 constants is only correct when the
constants are actually identical for the different UARTs. It has been
verified that this is currently the case for all targets supported by
avr-gcc 4.7.2, and the code contains compile-time checks to verify this
for the current target, in case a new target is added for which this
does not hold. This verification was done using:
for i in TXC RXEN TXEN RXCIE UDRIE U2X UPE; do echo $i; grep --no-filename -r "#define $i[0-9]\? " /usr/lib/avr/include/avr/io* | sed "s/#define $i[0-9]\?\s*\(\S\)\+\s*\(\/\*.*\*\/\)\?$/\1/" | sort | uniq ; done
This command shows that the above constants are identical for all uarts
on all platforms, except for TXC, which is sometimes 6 and sometimes 0.
Further investigation shows that it is always 6, except in io90scr100.h,
but that file defines TXC0 with value 6 for the UART and uses TXC with
value 0 for some USB-related register.
This commit reduces program size on the uno by around 120 bytes.
2014-01-16 16:36:06 +01:00
Matthijs Kooijman
494929495e
Define a _NOP() macro
...
Recent avr-libc releases define one, but this allows using it also on
older avr-libc releases.
2014-01-16 16:29:41 +01:00
Matthijs Kooijman
fc45ef0846
Simplify HardwareSerial::begin()
...
This simplifies the baud rate calculation, removing the need for a goto
and shortening the code a bit. Other than that, this code should not use
any different settings than before.
Code was suggested by Rob Tillaart on github.
Closes : #1262
2014-01-16 16:04:33 +01:00
Matthijs Kooijman
d43fd2014c
Remove unused variable
2014-01-16 13:52:40 +01:00
Cristian Maglie
0a0cda4f04
Slightly reduce code utilization by inlining HardwareSerail begin(baud) and operator bool()
2014-01-16 13:50:59 +01:00
Matthijs Kooijman
4bc8aa15e3
Remove duplicate code from HardwareSerial::begin() methods.
...
There are two begin methods, one which accepts just a baud rate and
uses the default bit settings and one which accepts both a baudrate and
a bit config. Previously, both of these contained a complete
implementation, but now the former just calls the latter, explicitely
passing the default 8N1 configuration.
Technically, this causes a small change: Before the UCSRC register was
untouched when calling begin(baud), now it is explicitely initialized
with 8N1. However, since this is the default configuration for at least
the Uno and the Mega (didn't check any others), probably for all avrs,
this shouldn't effectively change anything. Given that the Arduino
documentation also documents this as the default when none is passed,
explicitly setting it is probably a good idea in any case.
2014-01-16 13:20:11 +01:00
Matthijs Kooijman
46b0ada9a9
Make some operators in IPAddress const
...
These functions do not modify the IPAddress object, but were not marked
as const. This meant that you could not do:
void set_ip(const IPAddress& ip) {
uint32_t copy = ip;
}
Since calling operator uint32_t() on ip would discard the constness of
the reference.
2014-01-15 16:20:48 +01:00
Federico Fissore
1c99bf0e83
Removed = char from #define. See https://github.com/arduino/Arduino/issues/1792#issuecomment-31650586
2014-01-06 18:20:37 +01:00
Federico Fissore
64a9681935
Added new EULER constant. Fixes #1792
2014-01-06 09:48:34 +01:00
Cristian Maglie
1eee97d980
Improved portability of String class (maniacbug)
2014-01-01 17:22:40 +01:00
Cristian Maglie
bf37051397
Merge branch 'cast' of github.com:Lauszus/Arduino into Lauszus-cast
...
Conflicts:
hardware/arduino/avr/cores/arduino/Print.cpp
2013-12-31 20:11:08 +01:00
Matthijs Kooijman
1978e82e4e
Use PGM_P instead of prog_char
...
On later versions of avr-libc, prog_char is deprecated. In 0acebeeff48
the one occurence of prog_char was replaced by "char PROGMEM", which is
not entirely correct (PROGMEM is supposed to be an attribute on a
variable, not on a type, even though this is how things work in older
libc versions). However, in 1130fede3a2 a few new occurences of
prog_char are introduced, which break compilation on newer libc versions
again.
This commit changes all these pointer types to use the PGM_P macro from
<avr/pgmspace.h>. This macro is just "const char *" in newer libc
versions and "const prog_char *" in older versions, so it should always
work.
References #795
2013-12-31 20:01:40 +01:00
Kristian Lauszus
ad9f78d727
Use reinterpret_cast to cast __FlashStringHelper to const char*
2013-12-27 20:01:03 +01:00
Matthijs Kooijman
94cf4c2830
Remove unneeded casts in Print::write(const String&)
...
Now that Print::write(const char*) is also available, these casts are no
longer needed.
2013-12-24 13:22:43 +01:00
Matthijs Kooijman
0fd4002607
Add uint8_t* versions of methods in Stream
...
The new functions just call their char* equivalents, but this allows
reading bytes into a buffer of uint8_t as well as chars.
2013-12-24 13:22:42 +01:00
Matthijs Kooijman
7ded037878
Add Print::write(const char *, size_t)
...
The new function just calls Print::write(const uint8_t *, size_t), but
this allows writing out a buffer of chars (without having to learn about
casts).
2013-12-24 13:22:42 +01:00
Federico Fissore
dce9146485
Print.print optimization. Closes #1760
2013-12-23 11:50:39 +01:00
ntruchsess
faffdc1585
remove all Changes besides operator==
2013-12-06 19:05:31 +01:00
ntruchsess
6cdf45953f
add localPort to EthernetClient, simplify operator==
2013-11-27 10:40:57 +01:00
ntruchsess
68e218dda8
add operator==, remoteIP and remotePort to EthernetClient
2013-11-26 00:12:44 +01:00
Cristian Maglie
9b4562c4c5
Using NOT_AN_INTERRUPT defined constant
2013-10-31 12:44:24 +01:00
Cristian Maglie
d7ed6ec361
Merge branch 'master' into ide-1.5.x
2013-09-30 16:25:10 +02:00
Cristian Maglie
1d865de59a
Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
...
Conflicts:
build/shared/revisions.txt
2013-09-10 12:10:57 +02:00
Cristian Maglie
eb45bb95e0
Fixed HardwareSerial bug introduced in 1.5.3.
...
Fixes #1568
2013-09-09 13:09:27 +02:00
Federico Fissore
35f10e412f
Merge remote-tracking branch 'arduino/ide-1.5.x' into dev-ide-1.5.x-discovery
2013-09-06 12:59:24 +02:00
Cristian Maglie
cbeaa543fc
Fixed String class regression after f80c6c5f35cddcf4761a3c97feb8504425e9d27d
...
This should make explicit String-from-integer constructor working again:
int a = 10;
String(a, 4);
2013-09-03 18:40:30 +02:00
Paul Brook
0ade989a2d
USB CDC two argument begin()
...
Add two argument form of Serial_::begin
Signed-off-by: Paul Brook <paul@nowt.org>
2013-09-02 19:15:12 +01:00
Paul Brook
c2a0030473
USB serial baud arg type
...
Make USB Serial_::begin() function take an unsigned long argument for
consistency with HardwareSerial.
Signed-off-by: Paul Brook <paul@nowt.org>
2013-09-02 19:02:55 +01:00
Cristian Maglie
540743129b
Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
...
Conflicts:
app/src/processing/app/Preferences.java
app/src/processing/app/debug/Uploader.java
2013-08-23 15:59:24 +02:00
Cristian Maglie
b3348a6706
Removed unused flags from String (free 1 byte of SRAM)
2013-08-20 15:15:47 +02:00
Cristian Maglie
023434a6be
Merge branch 'master' into ide-1.5.x
2013-07-31 17:33:55 +02:00
Cristian Maglie
40b622a5d1
Merge branch 'issue1366' of github.com:Lauszus/Arduino into Lauszus-issue1366
2013-07-31 17:22:12 +02:00
Cristian Maglie
acb3df6d43
Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
...
Conflicts:
hardware/arduino/avr/cores/arduino/USBCore.cpp
2013-07-30 10:45:44 +02:00
Cristian Maglie
4de497b725
Move buffers into USB CDC (look #947 and #1369 for reference)
2013-07-27 12:06:42 +02:00
Cristian Maglie
090d53a74e
Fixed compile problem for Leonardo after 0bd6a2d20fb9664255b20e0db11dd4586ebe9007
2013-07-26 12:50:17 +02:00
Matthijs Kooijman
d1da7ef303
Make private members of HardwareSerial protected
...
This allows users to create subclasses.
Closes : #947
2013-07-26 12:41:35 +02:00
Matthijs Kooijman
714874dd8c
Move buffers into HardwareSerial
...
This removes the need for doing an extra pointer dereference on every
access to the buffers, shrinking the code by around 100 bytes.
The members for these buffers must be public for now, since the
interrupt handlers also need to access them. These can later be made
private again.
Furthermore, the struct ring_buffer was removed. This allows the all
head and tail pointers to be put into the HardwareSerial struct before
the actual buffers, so the pointers all end up in the first 32 bytes of
the struct that can be accessed using a single instruction (ldd).
References: #947
2013-07-26 12:39:56 +02:00
Matthijs Kooijman
a056282246
Use uint8_t for HardwareSerial ringbuffer pointers
...
Since the buffers aren't bigger than 64 bytes, these values can be
smaller. This saves a few bytes of ram, but also saves around 50 bytes
of program space, since the values can now be loaded using a single
instruction.
To prevent problems when people manually increase the buffer size, a
compile-time check is added.
Closes : #1078
2013-07-26 12:18:56 +02:00
Angus Gratton
ff47a782f5
Remove hardcoded product names (all provided for in boards.txt)
2013-07-17 14:38:05 +02:00
Angus Gratton
0340b90366
Fix whitespace (tabify), oops
2013-07-17 14:37:49 +02:00
Angus Gratton
a33cba585f
Allow USB product and manufacturer strings to be supplied in boards.txt
2013-07-17 14:37:29 +02:00
Cristian Maglie
d1db9d9810
Refactored YunClient and YunServer classes.
...
Added YunClient.connect() methods.
2013-07-04 17:15:52 +02:00
Federico Fissore
737ab5164d
Merge remote-tracking branch 'arduino/ide-1.5.x' into dev-ide-1.5.x-discovery
2013-06-28 15:36:50 +02:00
Cristian Maglie
620fe0a3ac
String: fixed number of whitespaces in concat() methods
2013-06-28 09:53:25 +02:00
Federico Fissore
da361cac0d
Merge remote-tracking branch 'arduino/ide-1.5.x' into ide-1.5.x-discovery
2013-06-25 16:13:56 +02:00
Cristian Maglie
a7ba61d1b7
String: changed default to 2 decimal digits
2013-06-21 21:23:12 +02:00
Cristian Maglie
514b18bb05
Merge branch 'ide-1.5.x' into ide-1.5.x-discovery
2013-06-07 00:38:42 +02:00
Cristian Maglie
f25e5e94f7
Fixed buffer overflow on String class (Paul Stoffregen)
2013-06-06 20:04:43 +02:00
Cristian Maglie
550b6adcfc
Merged various bugfix / improvements to String class.
...
Merge branch 'master' into ide-1.5.x
2013-06-06 19:54:58 +02:00
Cristian Maglie
db286ac0c1
Added support for Flash string on String class.
2013-06-06 16:33:20 +02:00
Cristian Maglie
2719777a48
String class: removed deep copy on substring method.
...
Small code cleanup.
2013-06-06 16:33:20 +02:00
Tevin Zhang
c8a79d0d0c
add String.toFloat
2013-06-06 16:19:34 +02:00
Ryan Esteves
6bef2ada06
Added remove methods to WString
2013-06-05 14:08:59 -04:00
Cristian Maglie
177ad96f86
Merge branch 'merge-1.0.5' into ide-1.5.x-discovery
2013-06-01 23:16:02 +02:00
Cristian Maglie
d90fcca583
Merged 1.0.5
2013-05-29 18:30:36 +02:00
Federico Fissore
5ab307f06f
Etheris references renamed Yun without accent to avoid encoding issues
2013-05-23 09:53:56 +02:00
Federico Fissore
09749bdf01
right etheris values
2013-05-16 15:37:42 +02:00
Fede85
cc5f2a52b4
Added support to INT6 on Leonardo.
...
Fixes #988
2013-05-13 21:22:59 +02:00
Cristian Maglie
7207108255
Merged 1.0.5
...
Still missing:
- updates to WiFi lib for sam.
- updates to examples of Ehternet and WiFi for sam.
Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
app/src/processing/app/Base.java
app/src/processing/app/Editor.java
app/src/processing/app/helpers/FileUtils.java
app/src/processing/app/i18n/Resources_fr.po
app/src/processing/app/i18n/Resources_fr.properties
build/shared/revisions.txt
hardware/arduino/avr/libraries/Ethernet/examples/DnsWebClient/DnsWebClient.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiChatServer/WifiChatServer.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiPachubeClient/WifiPachubeClient.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiPachubeClientString/WifiPachubeClientString.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiTwitterClient/WifiTwitterClient.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiUdpSendReceiveString/WifiUdpSendReceiveString.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiWebClient/WifiWebClient.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiWebClientRepeating/WifiWebClientRepeating.ino
hardware/arduino/avr/libraries/WiFi/examples/WifiWebServer/WifiWebServer.ino
libraries/WiFi/examples/WiFiChatServer/WiFiChatServer.ino
libraries/WiFi/examples/WiFiPachubeClient/WiFiPachubeClient.ino
libraries/WiFi/examples/WiFiPachubeClientString/WiFiPachubeClientString.ino
libraries/WiFi/examples/WiFiTwitterClient/WiFiTwitterClient.ino
libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino
libraries/WiFi/examples/WiFiWebClient/WiFiWebClient.ino
libraries/WiFi/examples/WiFiWebClientRepeating/WiFiWebClientRepeating.ino
libraries/WiFi/examples/WiFiWebServer/WiFiWebServer.ino
libraries/WiFi/examples/WifiChatServer/WifiChatServer.ino
libraries/WiFi/examples/WifiPachubeClient/WifiPachubeClient.ino
libraries/WiFi/examples/WifiPachubeClientString/WifiPachubeClientString.ino
libraries/WiFi/examples/WifiTwitterClient/WifiTwitterClient.ino
libraries/WiFi/examples/WifiUdpSendReceiveString/WifiUdpSendReceiveString.ino
libraries/WiFi/examples/WifiWebClient/WifiWebClient.ino
libraries/WiFi/examples/WifiWebClientRepeating/WifiWebClientRepeating.ino
libraries/WiFi/examples/WifiWebServer/WifiWebServer.ino
2013-05-11 14:37:25 +02:00
Cristian Maglie
eb40f35b2d
Added const modifier to String.c_str()
2013-05-06 18:10:29 +02:00
Cristian Maglie
8673113e43
Added c_str() method to String class.
2013-05-06 08:57:06 +02:00
Cristian Maglie
ccf7eb9a56
Stream "_timeout" field and related methods are now protected instead of private.
...
This allows better optimization on classes that extends Stream without losing
timeout capabilities.
2013-05-06 08:52:31 +02:00
Kristian Sloth Lauszus
8d7deb7a1f
Removed double instance of the same code
2013-05-02 01:00:17 +02:00
Kristian Sloth Lauszus
0a7b402c45
Check if ATmega32u4 is defined
...
Needed in order to work with Arduino Leonardo
2013-04-18 00:15:06 +02:00
Kristian Sloth Lauszus
8d26462be2
Removed call to analogPinToChannel for Leonardo
2013-04-18 00:07:33 +02:00
Kristian Sloth Lauszus
b9717187fd
Use analogPinToChannel if it's defined
2013-04-17 19:49:40 +02:00
Kristian Sloth Lauszus
ed42d95412
Added support for all variants of Sanguino
2013-04-04 20:55:15 +02:00
Cristian Maglie
ee90e68e86
Merged 1.0.5
...
Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
app/src/processing/app/Base.java
build/shared/revisions.txt
hardware/arduino/avr/cores/arduino/malloc.c
hardware/arduino/cores/arduino/avr-libc/malloc.c
hardware/arduino/cores/arduino/malloc.c
todo.txt
2013-04-03 13:51:04 +02:00
Cristian Maglie
f50c307be2
Fix deprecated ISR names for ATmega8.
...
See #881
2013-03-29 15:17:54 +01:00
Cristian Maglie
ab41589c2b
Removed deprecated interrupt handlers
...
Fixes #831 #881 #955 #1123 #1140
2013-03-29 14:41:36 +01:00
Cristian Maglie
f39a246be5
Increased malloc margin to 128.
...
https://github.com/arduino/Arduino/pull/1329#issuecomment-15609148
See #857 #1329
2013-03-29 11:48:35 +01:00
Cristian Maglie
f567db7573
Backported malloc and realloc from avr-libc 1.8.0 (without test code)
...
See #857
2013-03-23 21:40:52 +01:00
David A. Mellis
aa218e803a
Use analogPinToChannel() macro if present for ATtiny25/45/85.
...
This allows use of A0, A1, A2, A3 constants and for them to be mapped to the appropriate analog input channel. It should only be used if the macro is actually defined.
2013-03-06 17:49:44 -05:00
Cristian Maglie
5f4e55a3d2
Merged 1.0.4 pre-release into 1.5
2012-12-17 16:53:45 +01:00
Cristian Maglie
09b755fb9c
Add trivial new[] and delete[] operators (Justin R. Cutler)
...
Fixes #73
Fixes #883
2012-12-16 14:30:12 +01:00
Cristian Maglie
025ec2bc84
Fixed malloc() bug. (Paul Stoffregen)
...
Fixes #857
2012-12-16 14:16:35 +01:00
Cristian Maglie
433090f18b
Merged 1.0.3
2012-12-10 15:55:05 +01:00
Federico Fissore
c453e0a32e
fixed permissions on a lot of text files. see #1116
2012-12-10 10:42:49 +01:00
David A. Mellis
c4337d812b
Moving TXCO definition into HardwareSerial.cpp from HardwareSerial.h.
...
Otherwise, you get an error when compiling for processors with no serial port because the header file is always compiled.
See, for an example of the problem: https://github.com/damellis/attiny/issues/8
2012-12-08 10:44:48 -05:00
Cristian Maglie
1668039101
Added support for Arduino Esplora
2012-12-07 18:11:07 +01:00
David A. Mellis
9d638ca052
Clarifying comment.
2012-11-29 13:55:59 -05:00
David A. Mellis
4a01b84cab
Moving TXCO definition into HardwareSerial.cpp from HardwareSerial.h.
...
Otherwise, you get an error when compiling for processors with no serial port because the header file is always compiled.
See, for an example of the problem: https://github.com/damellis/attiny/issues/8
2012-11-29 13:48:01 -05:00
Cristian Maglie
706f5c74b2
Merged 1.0.2
...
Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
app/src/processing/app/debug/AvrdudeUploader.java
build/shared/examples/09.USB/Keyboard/KeyboardLogout/KeyboardLogout.ino
build/shared/examples/09.USB/Keyboard/KeyboardReprogram/KeyboardReprogram.ino
build/shared/examples/09.USB/Keyboard/KeyboardSerial/KeyboardSerial.ino
build/shared/examples/09.USB/Mouse/ButtonMouseControl/ButtonMouseControl.ino
build/shared/examples/09.USB/Mouse/JoystickMouseControl/JoystickMouseControl.ino
hardware/arduino/boards.txt
2012-11-04 22:49:14 +01:00
Cristian Maglie
69aead513d
Added general yield()-hook for cooperative scheduling development (part 2)
2012-11-02 18:12:21 +01:00
David A. Mellis
769aab0115
HardwareSerial: change byte to uint8_t (since byte definition isn't present).
2012-11-02 09:24:51 -04:00
David A. Mellis
cfec7864e9
Adding LilyPad Arduino USB.
2012-11-01 10:45:50 -04:00
Cristian Maglie
6e2b0e8755
Added general yield()-hook for cooperative scheduling development
2012-10-31 01:37:37 +01:00
David A. Mellis
42ca56fb83
Adding Micro.
2012-10-27 14:12:26 -04:00
David A. Mellis
69fa44473b
Updating USB core to work at 8 MHz (different PLLCSR value).
2012-10-18 15:03:23 -04:00
Cristian Maglie
037020e938
Merged latest changes in AVR arduino core
2012-10-18 18:47:50 +02:00
Cristian Maglie
6a45ba48ab
Merged upstream arduino branch
2012-10-18 15:50:09 +02:00
David A. Mellis
6d296e0fab
Adding ATmega644P check to ATmega1284P check.
2012-10-09 13:53:09 -04:00
David A. Mellis
1a0f22225b
Moving ATmega32U4 Timer 2 #undef's to Leonardo pins_arduino.h file.
2012-09-13 09:19:52 -04:00
David A. Mellis
999619579b
Merge pull request #102 from sgk/leonardoTone
...
Fix for tone() on Leonardo.
2012-09-13 06:07:10 -07:00
Peter Van Hoyweghen
dc86d26a11
Avoid serial buffer overrun on leonardo
2012-09-13 08:46:45 -04:00
David A. Mellis
5ca747e312
Changing setting of the UMSELn bits (for UART mode) and serial config values.
...
Before, the UMSELn1 bit was being to set to 1, putting the UART into a reserved mode. Now, we only set the high (0x80) bit to 1 for the ATmega8, which is needed to access UCSRnC (whose i/o address is shared with UBRRH).
Also, no longer bitwise-or the new config with the existing register value, because we're actually configuring all the settings in the register. (We're not using UCPOL, but it's supposed to be 0 in asynchronous mode.)
2012-08-30 08:47:35 -04:00
David A. Mellis
1650169f5d
Renaming serial config constants to, e.g., SERIAL_8N1.
2012-08-30 08:21:12 -04:00
David A. Mellis
6542625bc2
Merge pull request #109 from Alarus/master
...
Serial.begin() parameter to set data bits, parity, stop bits.
2012-08-30 05:08:28 -07:00
David A. Mellis
70b6f11d63
Fixing Serial.flush() breakage on Leonardo (WestFW).
...
http://code.google.com/p/arduino/issues/detail?id=1020
2012-08-30 07:44:25 -04:00
David A. Mellis
912092b03f
Fixing ATmega8 breakage from flush() change. (WestFW)
...
http://code.google.com/p/arduino/issues/detail?id=1019
2012-08-29 20:52:30 -04:00
David A. Mellis
c29b408a9d
Adding overloads so Serial.write(0) works.
...
http://code.google.com/p/arduino/issues/detail?id=1006
2012-08-29 16:32:05 -04:00
David A. Mellis
00ab72619e
Serial.flush() waits for last character to be transmitted (michele.mazzucchi)
...
http://code.google.com/p/arduino/issues/detail?id=871
2012-08-28 08:02:54 -04:00
Adam Dunlap
c40ab91c41
Fix issue 866
...
Fix issue 866 by adding a const qualifier to what the F macro casts to.
2012-08-16 20:59:33 -07:00
Alarus
af8ff1d1e0
Update hardware/arduino/cores/arduino/HardwareSerial.cpp
...
New Serial.begin(baud, config);
2012-08-14 19:55:13 +06:00
Alarus
1cda182f33
Update hardware/arduino/cores/arduino/HardwareSerial.h
...
New Serial.begin(baud, config);
2012-08-14 19:52:00 +06:00
Alarus
b6faa6e254
Update hardware/arduino/cores/arduino/HardwareSerial.cpp
...
New Serial.begin(baud, config);
2012-08-14 19:50:36 +06:00
Alarus
0c0defa645
Update hardware/arduino/cores/arduino/HardwareSerial.cpp
...
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 22:07:42 +06:00
Alarus
ed699cf636
Update hardware/arduino/cores/arduino/HardwareSerial.cpp
...
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 21:35:48 +06:00
Alarus
1f6dd92313
Update hardware/arduino/cores/arduino/HardwareSerial.cpp
...
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 20:57:57 +06:00
Alarus
03a4b50b8e
Update hardware/arduino/cores/arduino/HardwareSerial.h
...
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 20:23:00 +06:00
Alarus
b9bbc71dca
Update hardware/arduino/cores/arduino/HardwareSerial.h
...
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 20:18:50 +06:00
Shigeru KANEMOTO
4293079076
Fix for tone() on Leonardo.
2012-08-08 18:27:40 +09:00
David A. Mellis
e77ee2903b
Print "ovf" if float to be printed doesn't fit in a long.
...
http://code.google.com/p/arduino/issues/detail?id=967
2012-06-28 23:20:56 -04:00
David A. Mellis
2ef2f9d5c7
Print "inf" for infinite floating point numbers (using isinf()).
...
http://code.google.com/p/arduino/issues/detail?id=961
2012-06-23 10:37:35 -05:00
David A. Mellis
29ff4f779a
Adding write(str) and write(buf, size) for USB CDC.
...
So that they work on the Leonardo.
http://code.google.com/p/arduino/issues/detail?id=958
2012-06-14 15:54:13 +01:00
David A. Mellis
3436ca97cb
Printing NaN values as "nan" in printFloat().
...
http://code.google.com/p/arduino/issues/detail?id=946
2012-06-04 23:30:41 -04:00
David A. Mellis
57973bcd49
Check for NULL pointer in Print.write().
...
Otherwise, trying to print(NULL) or write(NULL) could print a random
character.
http://code.google.com/p/arduino/issues/detail?id=941
2012-06-03 07:48:32 -04:00
Kristian Lauszus
4ed0bd2bd5
Added support for interrupt on INT2 and INT3 on the Leonardo
2012-06-02 20:08:46 +02:00
David A. Mellis
810803c6d3
Merge remote-tracking branch 'upstream/master'
2012-05-21 09:31:54 -07:00
David A. Mellis
b495294aa3
Adding readString() and readStringUntil() to Stream (Adrian McEwen).
...
This isn't necessarily a particularly efficient implementation (it
allocates memory one character at a time and so may lead to
fragmentation) but it seems to work.
http://code.google.com/p/arduino/issues/detail?id=454
2012-05-16 15:39:34 -04:00
Zach Eveland
efa7593772
Mouse.isPressed() now checks only for left button by default
...
if no argument is given now checks left button by default to be consistent with press() and release() (thanks, David Mellis)
2012-05-15 15:48:51 -04:00
Zach Eveland
757a77ab67
renamed Leonardo USB_ class to USBDevice_ to be unambiguous. renamed "USB" object to "USBDevice" to prevent conflict with USB Host library (thanks Massimo)
2012-05-01 11:18:15 -04:00
Zach Eveland
d755d0035d
changed PID values for Leonardo bootloader and sketch
...
done to avoid driver problems for users who installed the pre-release bootloader and driver
2012-04-25 15:56:18 -04:00
Zach Eveland
6ae1a17235
bugfix for configuring PWM on D6 and D13 too early. (thanks to Limor Fried)
...
was starting PWM on these pins too soon - in init() instead of when analogWrite() was called. as a result doing output on port registers directly failed.
2012-04-19 15:52:16 -04:00
Zach Eveland
56ddc4637d
bugfix for boards with a timer 4 but no channel D
...
compilation failed for Mega because the COM4D1 and OCR4D registers are defined for 32U4 but not for Mega
2012-04-19 15:46:32 -04:00
Zach Eveland
49f7fb00fd
fixed logic bug in Caterina that could stop the bootloader from entering self-programming mode
2012-04-11 23:19:05 -04:00
Zach Eveland
e2e0260094
Micro I hardly knew ye
2012-04-09 10:12:14 -04:00
Zach Eveland
ec83f55b62
sketch USB VID and PID values are passed in from boards.txt at compile time now. changed sketch PIDs to final values. also uncommented Micro section in boards.txt
2012-04-09 08:06:35 -04:00
Zach Eveland
ee611dc194
Revert "Revert "added a short delay and comment to boolean operator in CDC""
...
This reverts commit 200eefb4e2ac7796c5c901e8fd9369c85ec544c5.
2012-04-06 21:23:17 -04:00
Federico Vanzati
02c5849501
Revert "added a short delay and comment to boolean operator in CDC"
...
This reverts commit ade4893f585e3e94fa6cf683620e1d12afc88ecd.
2012-04-06 17:36:09 +02:00
Zach Eveland
dd55096901
added a short delay and comment to boolean operator in CDC
...
Delay fixes problem where the port has been configured but not quite opened. Federico found that 10 ms was the minimum time needed to avoid problems.
2012-04-03 10:52:38 -04:00
Zach Eveland
a984b581a8
added Boolean operators to HardwareSerial and CDC to test whether the port is ready to send data.
...
Mostly useful for Leonardo - simple way to test whether the port is actually opened by an application and ready to receive data. For Serial objects attached to real UARTs always returns true.
2012-04-01 12:54:35 -04:00
Zach Eveland
1534b2b730
fixed logic error in Keyboard.release() - now removes every occurrence of a key if it's present more than once
2012-03-28 19:46:32 -04:00
Zach Eveland
83feb14013
removed horrible multi-key Keyboard.press() and Keyboard.release() methods
...
Saves 924 bytes of Flash
2012-03-28 18:46:10 -04:00
Zach Eveland
d3eabc9c01
eliminated Keyboard.type() - unnecessary duplication of Keyboard.write() (David Mellis). Also edit KeyboardReprogram example which was the only example using type()
2012-03-28 18:35:26 -04:00
Zach Eveland
58c36f76d5
added methods to Keyboard to handle multiple simultaneous key presses or releases (up to six each)
2012-03-26 17:28:02 -04:00
Zach Eveland
f646c9186d
Keyboard.type() now just presses and releases the key indicated - doesn't releaseAll()
2012-03-26 17:00:16 -04:00
Zach Eveland
9c040a8a2b
added stub methods for begin() and end() to Mouse and Keyboard
2012-03-26 16:02:40 -04:00
Zach Eveland
8c618773b5
reduced delay before starting the Leonardo bootloader
...
Since we use a magic RAM flag to signal to the bootloader there's a risk of the sketch overwriting the magic RAM location before the bootloader starts. By reducing the watchdog timeout we reduce the chance of this happening.
2012-03-14 18:17:22 -04:00
Cristian Maglie
b407337677
Fix for some strange behaviours during board reset
2012-03-07 16:21:04 +01:00
Zach Eveland
1566006871
Added Keyboard support for all modifier and all common non-printing keys.
2012-03-03 23:37:39 -05:00
Zach Eveland
54fb0bf3f5
Removed support for key mapping in Keyboard.
...
Was no longer being used and would be damn near impossible to support with the new scheme for handling modifiers and non-printing keyboard characters.
2012-03-03 23:06:44 -05:00
Zach Eveland
fbea67532a
added Keyboard methods press(), release(), and releaseAll()
...
Changes mean that a single, persistent key report must be used so keys can be added or removed. Also reimplemented type() using the new methods.
2012-03-03 22:54:45 -05:00
Zach Eveland
74863e4bdf
Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader
...
Conflicts:
.gitignore
2012-03-03 13:28:39 -05:00
Zach Eveland
8f5869009c
fixed minor compilation warnings for Leonardo
2012-03-03 13:26:57 -05:00
David A. Mellis
4fade7007f
Small changes for the ATmega1284.
...
http://code.google.com/p/arduino/issues/detail?id=736
2012-03-02 18:58:53 -05:00
Zach Eveland
c8ca7f9636
changed auto-reset logic for Leonardo. only do WDT manipulation if the port is opened at 1200 bps. (Dave Mellis)
2012-03-01 08:51:16 -05:00
Cristian Maglie
73066a4ca2
Autoreset 1200 bps fix.
2012-02-27 17:41:38 +01:00
Zach Eveland
0138ee9b01
shortened the watchdog period for resetting Leonardo from 2 s to 250 ms. Reset into bootloader is much snappier.
2012-02-22 22:33:44 -05:00
Zach Eveland
66019a7550
Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader
2012-02-22 15:19:32 -05:00
Zach Eveland
7948125208
Leonardo now checks whether bootloader should be run after a WDT event.
...
Before the sketch initiates an auto-reset for upload it pokes a magic word into a specific RAM address. On starting the bootloader checks this address. If it finds the magic word it knows the bootloader code should run. If not it jumps straight back to sketch.
Test in a sketch by adding to setup():
wdt_enable(WDTO_2S);
Sketch should upload, start, run for two seconds, WDT, and sketch should restart (not bootloader).
Had to cut out unused descriptor code to make the bootloader still fit in 4k.
2012-02-14 12:17:30 -05:00
Zach Eveland
924e5a4846
Leonardo auto-reset-and-upload changes for Windows (explanation below)
...
On Windows COM port changes when board switched between bootloader and sketch. No way to prevent this so now Windows users have to select the upload port separate from the comm port. Also, handling of reset into bootloader was broken on Windows. Would occasionally leave the original COM port completely unusable. Changed the way this reset is initiated.
Finally, had to add upload.disable.flushing=true flag to boards.txt so IDE wouldn't try to flush the original COM port after it disappeared.
2012-02-13 00:56:06 -05:00
Zach Eveland
ac3aca0acf
changed Leonardo bootloader and sketch PID values again (now 0x0701 for bootloader, 0x0801 for sketch)
2012-02-13 00:10:16 -05:00
David A. Mellis
a7afdf40ba
prog_char -> char PROGMEM in Print.cpp
...
http://code.google.com/p/arduino/issues/detail?id=795
2012-02-12 19:52:03 -05:00
Zach Eveland
35bbf80ba9
adjusting descriptors - trying to prevent sketch and bootloader from grabbing different COM numbers on Windows
2012-02-08 01:16:56 -05:00
Zach Eveland
d7b0507e8a
fixed starting Leonardo bootloader from sketch
...
AvrdudeUploader class opens and closes Leonardo port at the magic baudrate before starting avrdude; reduced reset timeout from 250 ms to 15 ms
2012-02-03 21:42:46 -05:00
Zach Eveland
a794f295e0
Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader
2012-02-03 19:54:33 -05:00
David A. Mellis
e1438efb3a
Making head and tail unsigned to avoid division in serial ISR.
...
http://code.google.com/p/arduino/issues/detail?id=776
2012-02-03 17:24:29 -05:00
Zach Eveland
45d3b10295
Caterina now cleanly hands off operation to the sketch
...
had to remove TIMER1 operation from bootloader - was interfering with normal sketch operation
2012-01-24 18:04:10 -05:00
Zach Eveland
989f672d34
Merge branch 'master' of github.com:arduino/Arduino into new-extension
2012-01-10 12:02:27 -05:00
David A. Mellis
6c00397e22
Adding INPUT_PULLUP option pinMode(). (Paul Stoffregen).
...
This also changes pinMode(pin, INPUT); to explicitly disable the pull-up resistor, even if it was previously set.
http://code.google.com/p/arduino/issues/detail?id=246
2012-01-02 14:20:28 -05:00
David A. Mellis
3b962be273
Fixing findUntil() problem with repeated initial characters. (Jeffery.zksun)
...
http://code.google.com/p/arduino/issues/detail?id=768
2012-01-02 13:49:59 -05:00
David A. Mellis
95b51c7728
Fixing warnings (unsigned comparisons to 0). (maniacbug)
2012-01-02 12:57:23 -05:00
David A. Mellis
3f429a9c61
Fixing static is not at beginning of declaration warnings (maniacbug).
2012-01-02 12:38:23 -05:00
Zach Eveland
cbce8ed4bf
Merge branch 'master' of github.com:arduino/Arduino into new-extension
2011-12-31 11:21:44 -05:00
David A. Mellis
3ece2827a4
Simplifying microseconds <-> clock cycles conversions. (Rob Tillaart)
...
This should fix problems with overflows in pulseIn(). It may make millis() slightly less precise for clock speeds that aren't multiple of 1 million, but we don't really support those anyway.
http://code.google.com/p/arduino/issues/detail?id=675
2011-12-30 18:05:12 -05:00
Zach Eveland
4e9fb924b2
changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream.
2011-12-20 17:09:44 -05:00
Zach Eveland
e405a6eb60
Revert "changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream."
...
This reverts commit de1d5fc0cb82874c0dcb766c5fb27ab36c5cb32c.
2011-12-20 17:08:07 -05:00
Zach Eveland
e4930f866d
changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream.
2011-12-20 17:00:19 -05:00
Zach Eveland
6dc00061df
fixed attachInterrupt() on Leonardo
...
had to define a separate block for the 32U4 since it looks like a Mega-series board based on a simple register trick. Only two useable HW interrupts though, compared to the Megas' 8, and numbering differs.
2011-12-19 15:40:12 -05:00
Zach Eveland
58fc0d17cc
added asynchronous buffering of received CDC characters
...
This fixes the issue Federico reported where bytes written by host but not read by sketch would cause serial connection to lock up. Ring buffer implementation is based on HardwareSerial.cpp.
Adds public accept() method to CDC.
2011-12-18 17:52:35 -05:00
Zach Eveland
177641003c
fixed digitalWrite on timer 4 pins (D6 and D13)
2011-12-18 14:18:38 -05:00
Zach Eveland
c58fcf5554
fixed TIMER4 use on Leonardo
...
ATMEGA32U4 has major differences in TIMER4 registers compared to ATMEGA1280 and 2560. turnOffPWM, analogWrite, and initialize routines had wrong registers, bit names, etc.
2011-12-11 19:56:50 -05:00
David A. Mellis
a9d1368e4c
Updated reference voltage defines for ATmega1284P.
...
http://code.google.com/p/arduino/issues/detail?id=728
2011-12-02 17:18:15 -05:00
David A. Mellis
c2263dfc0b
Support 3rd external interrupt on ATmega1284P (maniacbug)
...
http://code.google.com/p/arduino/issues/detail?id=728
2011-12-02 17:17:27 -05:00
David A. Mellis
aae9972a2b
Fixing delayMicroseconds() timing for 20 MHz clocks. (Erdem U. Altinyurt)
...
http://code.google.com/p/arduino/issues/detail?id=306
2011-12-02 17:04:20 -05:00
David A. Mellis
b86a613d99
readBytes() and readBytesUntil() handle zero bytes and return # of bytes read.
...
http://code.google.com/p/arduino/issues/detail?id=586
2011-11-19 16:23:19 -05:00
Zach Eveland
3c60b1e54f
Fixed handling of Ax constants on Leonardo
...
Fixed mistake in assignment and handling of A6-A11 constants. Renumbered constants for all Ax channels.
2011-11-16 10:49:41 -05:00
Zach Eveland
4b7771a815
restored original non-interrupt-driven DiskLoader
...
Interrupt-driven version was a dead-end - too many bugs with that approach.
2011-11-09 14:04:59 -05:00
Zach Eveland
61b03fc985
Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot
2011-10-31 21:42:09 -04:00
David A. Mellis
aaa69be264
Protecting the version of parseInt() and parseFloat(). (Paul Stoffregen)
...
This should allow us more flexibility in determining how to handle these functions later. For example, in specifying that initial characters shouldn't be skipped.
http://code.google.com/p/arduino/issues/detail?id=698
2011-10-29 17:40:23 -04:00
Zach Eveland
3524f2ff0b
Revert "Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot"
...
This reverts commit df9835efafd13685251749bc210c0b96a18a96a5, reversing
changes made to ec45af8bfa9222a807c075dd1db4b5aa798bba03.
Conflicts:
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:45:13 -04:00
Zach Eveland
ec93cd74a1
Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot
...
Conflicts:
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClient/PachubeClient.ino
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:41:02 -04:00
Zach Eveland
415a5e119d
changes in core and boards.txt to support new bootloader
...
old bootloader could fit in only 2 kB of flash. new version has to have a 4 kB block - jump-to address and boards.txt must reflect this.
2011-10-27 11:36:10 -04:00
Zach Eveland
29cfd9e9fe
Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot
...
Conflicts:
app/src/processing/app/Editor.java
app/src/processing/app/Sketch.java
build/shared/examples/4.Communication/SerialCallResponse/SerialCallResponse.pde
build/shared/lib/theme/theme.txt
hardware/arduino/cores/arduino/HardwareSerial.h
hardware/arduino/cores/arduino/Print.cpp
hardware/arduino/cores/arduino/WString.h
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClient/PachubeClient.ino
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
libraries/Firmata/examples/EchoString/EchoString.ino
libraries/SD/File.cpp
libraries/SoftwareSerial/SoftwareSerial.cpp
libraries/SoftwareSerial/SoftwareSerial.h
libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino
libraries/SoftwareSerial/keywords.txt
2011-10-27 09:32:27 -04:00
David A. Mellis
5c9d10ad94
Bug fix in replace().
...
http://code.google.com/p/arduino/issues/detail?id=694
2011-10-25 11:15:14 -04:00
David A. Mellis
8d48010edf
Moving ARDUINO_MAIN from main.cpp to wiring_digital.c and hiding PA, PB, etc.
...
http://code.google.com/p/arduino/issues/detail?id=677
http://code.google.com/p/arduino/issues/detail?id=691
2011-10-24 16:50:15 -04:00
David A. Mellis
85f10a7150
Correcting analogReference() constants for ATtiny24/44/84 and 25/45/85.
...
DEFAULT, EXTERNAL, and INTERNAL have different values on those processors.
2011-10-24 15:44:01 -04:00
David A. Mellis
d3fa070d10
Lowering timer 1 prescale factor (to 8 from 64) for F_CPU less than 8 MHz.
...
Otherwise, you can see flicker on an LED.
2011-10-21 11:54:11 -04:00
David A. Mellis
77cdeb5b93
Fixing more warnings (Paul Stoffregen).
2011-10-10 11:28:44 -04:00
David A. Mellis
075bb009b9
Fixing warnings in Stream (Paul Stoffregen)
...
http://code.google.com/p/arduino/issues/detail?id=208
2011-10-02 09:44:21 -04:00
David A. Mellis
e0c524b057
Using alternate timer 0 overflow interrupt signal name for ATtiny24/44/84.
2011-09-30 11:24:44 -04:00
Zach Eveland
d004d6a9b4
added Mouse.isPressed() method
2011-09-16 16:59:14 -04:00
Zach Eveland
3287477db1
made some Keyboard methods private
2011-09-16 16:43:07 -04:00
Zach Eveland
5bbe2a63e4
added support for TIMER4D used for PWM on Leonardo and Micro D6
2011-09-16 16:36:42 -04:00
Zach Eveland
8e0f035c9b
added automatic one-shot TX and RX LED control for sketch USB
2011-09-16 14:32:25 -04:00
Zach Eveland
7166603c89
added to sketch iProduct and iManufacturer strings identifying board as either an "Arduino Leonardo" or "Arduino Micro" manufactured by "Arduino LLC"
2011-09-16 12:29:47 -04:00
Zach Eveland
983cfc058e
Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
2011-09-16 10:27:11 -04:00
Zach Eveland
d0b0f3e45d
fixed analog pin mapping for 32u4
2011-09-13 23:52:26 -04:00
Zach Eveland
15c4c96929
fixed Mouse button assignments
2011-09-13 21:37:46 -04:00
Zach Eveland
d3c96622b3
made Mouse.buttons() private. removed MOUSE_ALL macro
2011-09-12 08:14:13 -04:00
David A. Mellis
023ea285e1
Don't consume trailing char in parseInt() and parseFloat (Paul Stoffregen).
...
http://code.google.com/p/arduino/issues/detail?id=624
2011-09-09 16:24:47 -04:00
Zach Eveland
c0ad36ad43
Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
...
Conflicts:
build/linux/dist/tools/avrdude.conf
2011-09-08 20:26:47 -04:00
Zach Eveland
e52cf0e420
fixed bug where sketches over 28k caused subsequent auto-reset-and-upload attempts to fail. fixed bug in reboot routine, changed fuses to select 1024-word bootloader size, disabled hardware boot enable.
2011-09-08 19:31:18 -04:00
Zach Eveland
63ec4aba22
added compile-time definition of sketch PID. PID is pulled from variants/leonardo or the new variants/micro as appropriate.
2011-09-08 15:52:05 -04:00
Zach Eveland
6cca25b8c4
Revert "support compile-time passing of PID to Leonardo/Micro sketches. PID comes from boards.txt - different for Micro and Leonardo"
...
This reverts commit 3e0d195492247a7e7c2ec72476bf2a0991ea6d48.
2011-09-08 15:39:17 -04:00
Zach Eveland
10c041de80
support compile-time passing of PID to Leonardo/Micro sketches. PID comes from boards.txt - different for Micro and Leonardo
2011-09-08 11:23:55 -04:00
David A. Mellis
8b13206e65
Making Print::write(char *) non-virtual.
...
http://code.google.com/p/arduino/issues/detail?id=607
2011-09-07 18:41:05 -04:00
David A. Mellis
3c66dc1b8d
Changing to a simpler mental model for serialEvent (Paul Stoffregen).
...
http://code.google.com/p/arduino/issues/detail?id=626
2011-09-07 17:47:17 -04:00
Zach Eveland
d81084e8e9
changed auto-reset trigger condition to fix auto-reset-and-upload for Windows. now reboots when a port, opened at 1200 bps, is closed.
2011-09-06 20:58:00 -04:00
Zach Eveland
95fd39090e
changed baudrate for auto-reset-and-upload back to 1200 bps. specified arduino protocol for Leonardo avrdude upload.
2011-09-05 13:08:05 -04:00
Zach Eveland
280f381265
Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
...
Conflicts:
build/macosx/dist/tools-universal.zip
build/windows/avr_tools.zip
hardware/arduino/cores/arduino/HardwareSerial.cpp
2011-09-05 12:53:45 -04:00
David A. Mellis
7b0d88b954
Moving serialEvent() calls from RX interrupts to main for() loop (after loop()).
...
http://code.google.com/p/arduino/issues/detail?id=584
2011-08-31 15:52:56 -04:00
David A. Mellis
84a0ad9fd3
Renaming writeError() to getWriteError() in Print (and Stream and friends).
...
http://code.google.com/p/arduino/issues/detail?id=608
2011-08-31 15:39:20 -04:00
Zach Eveland
90ea0707e6
added Mouse press() and release()
2011-08-30 20:23:06 -04:00
Zach Eveland
df068274f4
on a CDC or HID write() error, call setWriteError(). better handling of USB_Send errors in CDC.
2011-08-30 17:25:35 -04:00
amcewen
527ff3c7f8
Created an abstract base class UDP to match the Client and Server classes, and reworked the Ethernet library to use it and derive EthernetUDP.
2011-08-30 21:27:31 +01:00
Zach Eveland
af635024db
support for non-Leonardo boards is back!
2011-08-30 11:50:08 -04:00
Zach Eveland
481fdeab79
CDC and HID write() routines now return non-void - brought in line with new write behavior
2011-08-30 11:04:34 -04:00
Zach Eveland
4ce1dea595
Merge branch 'mainline' into new-extension
2011-08-30 08:38:06 -04:00
amcewen
3f7d2c8977
Changed names of the Ethernet classes: Client -> EthernetClient, NetClient -> Client, and basic testing performed
2011-08-29 22:36:28 +01:00
amcewen
528e95b14d
Final changes to integrate latest core updates to WiFly branch
2011-08-28 22:26:07 +01:00
amcewen
8ce77304f7
Merge branch 'master' into wifly_integration
2011-08-28 20:28:53 +01:00
Zach Eveland
39e0796aad
auto-upload-and-reset works now at 300 bps. patched avrdude for Mac to support 300 bps connection, changed core and boards.txt to match
2011-08-27 20:32:34 -04:00
amcewen
f9d50a7930
Merge branch 'new-extension' of https://github.com/arduino/Arduino
2011-08-27 23:53:42 +01:00
David A. Mellis
5130a13294
Moving write errors out of return value into separate API methods.
...
write(), print(), println() now return size_t (and don't use negative values to signal errors).
Print adds writeError() for checking for write errors, clearWriteError() to reset the flag to false, and a protected setWriteError() for signalling errors.
http://code.google.com/p/arduino/issues/detail?id=598
2011-08-26 16:08:14 -04:00
David A. Mellis
0635790dd1
Changing from long to ssize_t (int) for write(), print(), println() return.
2011-08-26 14:20:41 -04:00
Zach Eveland
f0ac64d2db
bugfix - Serial.write() would try to send even if no CDC connection was open.
2011-08-24 21:04:30 -04:00
Zach Eveland
160bf890e0
changed auto-reset method for upload: now triggered by opening port at 1200 bps
2011-08-24 17:12:28 -04:00
David A. Mellis
f282cbaf96
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
Zach Eveland
0d592a5fea
USB microcontrollers will call USB.attach() after init(), before setup()
2011-08-18 19:59:35 -04:00
Zach Eveland
7d575222af
HW Serial on pins 0 and 1 works. Accessed by Serial1.* methods
2011-08-18 19:40:04 -04:00
David A. Mellis
9bc7be0d9a
Stream.readBytesUntil() now writes null terminator within length.
2011-08-18 15:13:47 -04:00
David A. Mellis
8dd6a40334
A few API changes to new Stream parsing functions.
...
Renamed readChars() -> readBytes(), readCharsUntil() -> readBytesUntil().
Changed timeouts to milliseconds from seconds; default from 5 to 1 seconds.
Removed readCharsBetween().
2011-08-17 14:16:47 -04:00
David A. Mellis
31ff05504f
Integrating Stream searching & parsing (Michael Margolis)
...
This from Michael's TextFinder library, incorporated into the Stream class: find(), findUntil(), parseInt(), parseFloat(), readChars(), readCharsUntil(), readCharsBetween(), setTimeout().
2011-08-17 13:53:49 -04:00
Zach Eveland
84c0d2cff8
Temporary fix for auto-reset from IDE. Will reset chip when DTR is asserted, no matter what CDC baud rate is selected.
2011-08-16 13:43:55 -04:00
Zach Eveland
ddd3418a4f
Serial via USB works
...
Integrated rest of Peter's USB implementation
2011-08-14 16:59:34 -04:00
Zach Eveland
4c537c1b6d
committed USB API, initial HardwareSerial-USBSerial integration
2011-08-11 14:08:38 -04:00
amcewen
58aaa903f8
Merge remote branch 'upstream/new-extension'
...
Moved my fork to the Arduino 1.0 codebase
2011-06-11 21:27:18 +01:00
David A. Mellis
a239d2c541
Added Printable interface class to allow printing of classes such as IPAddress
2011-06-04 09:19:17 -04:00
David A. Mellis
664e9af2cd
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
f25e71c3c1
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-14 12:25:39 -04:00
David A. Mellis
90c487402c
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
5e5cce8124
Optimizing printing of numbers (writing a single buffer).
...
Fix from Bill Greiman via Limor.
2011-05-07 18:17:32 -04:00
David A. Mellis
ac5defcea6
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
111c55581b
Refactoring the UART0 / USART0 receive interrupt handler.
2011-05-07 12:47:43 -04:00
David A. Mellis
c7c7302d9d
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
amcewen
edee02eaf1
Added virtual destructor to Printable, which also requires new and delete operators to be added
2011-04-10 11:34:40 +01:00
amcewen
49155d0a46
Added a brief explanation of how you'd use Printable
2011-04-02 11:33:27 +01:00
amcewen
2cedbeef13
Added Printable interface class to allow printing of classes such as IPAddress
2011-04-01 21:10:38 +01:00
amcewen
e852be3e97
Pulled out Server API into the NetServer base class, and a few minor changes to get the NetClient API to work well with the WiFly library
2011-03-31 16:19:17 +01:00
David A. Mellis
1cac0f3eb7
Restoring concatenation of built-in types with String.
2011-03-31 10:56:14 -04:00
amcewen
e011dab7b4
Pulled out Client API into a base class to allow multiple derived classes to use it, and moved it (plus IPAddress) out of the Ethernet library so that other libraries can find it. First steps in integrating the WiFly code so it's easier to switch between that and Ethernet
2011-03-28 12:08:53 +01:00
David A. Mellis
ffe7bc53c1
Adding F("foo") syntax for flash strings.
2011-03-27 15:06:20 -04:00
David A. Mellis
99e642a26d
String: removing implicit numeric conversions and new approach to "if (s)".
...
This makes explicit the String constructors that take numeric types and chars and removes the versions of concat() and operator=() and operator+() that accept numberic types.
It also replaces the operator bool() with a operator that converts to a function pointer. This allows for uses like "if (s)" but not "s + 123". See: http://www.artima.com/cppsource/safebool.html . This allowed removing the disambiguating operator+() functions and relying solely on StringSumHelper and anonymous temporaries once again.
Also, now treating unsigned char's like int when constructing Strings from them, i.e. String(byte(65)) is now "65" not "A". This is consistent with the new behavior of Serial.print(byte).
2011-03-26 18:52:54 -04:00
David A. Mellis
cedea72273
Commenting String API behavior.
2011-03-23 22:42:05 -04:00
David A. Mellis
58d04ab3a3
Return an invalid string (not a partial one) when operator+() fails.
2011-03-19 11:14:17 -04:00
David A. Mellis
7dea0522f4
Starting to distinguish between empty strings and invalid (null) ones.
2011-03-18 21:45:27 -04:00
David A. Mellis
45884b1231
Protecting String copy() and move().
2011-03-13 19:39:04 -04:00
David A. Mellis
a5f6e65242
Adding additional String + operators for disambiguation.
...
The operator bool() means that you could implicitly convert a String to a bool and then add it to it an int, for example. Which means our operator+ has to match exactly or it will be ambiguous.
2011-03-13 19:31:10 -04:00
David A. Mellis
76776e7a46
Moving move() to __GXX_EXPERIMENTAL_CXX0X__ only, adding operator bool().
2011-03-13 16:46:06 -04:00
David A. Mellis
98b403114c
Modifying String.concat() to return success or failure, not this.
...
Which means you can't chain multiple concat() calls together, but you can check if they succeeded or not.
2011-03-12 14:03:34 -05:00
David A. Mellis
b4b32f60f1
Don't return the string when modifying its value.
...
Changing toLowerCase(), toUpperCase(), trim() and replace() to return void instead of a reference to the string that's just been changed. That way, it's clear that the functions modify the string they've been called on.
2011-03-11 18:54:58 -05:00
David A. Mellis
99e0c131fc
Renaming append() back to concat().
2011-03-11 18:04:31 -05:00
David A. Mellis
22786eaed2
Removing F("string") syntax for now.
...
We should probably add something like this back in later, but I want to do one thing at a time. This removes the __FlashStringHelper class as well.
2011-03-11 18:01:40 -05:00
David A. Mellis
438bca3cb2
Rewrite of the String class by Paul Stoffregen.
...
http://www.pjrc.com/teensy/string_class_experimental.html
2011-03-11 17:56:10 -05:00
David A. Mellis
0ba1f0ec50
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
01d82d8277
Fixing race condition in Serial write (Brian Cook).
2011-03-06 11:47:18 -05:00
David A. Mellis
bc416b14bd
Moving TCCR1B reset into #ifdef check.
2011-03-06 11:29:35 -05:00
David A. Mellis
d8d233ad3e
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
a19a23ff92
Factoring pin definitions out of the core.
...
That is, there's now a pins/ directory in a platform, which includes multiple directories, each of which has its own pins_arduino.h. The boards.txt gets a new preferences, <BOARD>.build.pins, whose values is a sub-directory of the pins/ directory (possibly with a "platform:" prefix). That sub-directory is then placed in the include path during compilation.
2011-03-04 21:05:05 -05:00
David A. Mellis
6cd58c57db
Moving all pin definitions into pins_arduino.h.
...
This is a step towards providing portability across AVR's by simply including an appropriate header file.
2011-03-03 23:54:33 -05:00
David A. Mellis
5e721df32a
Fixing warnings (David H. Lynch Jr).
2011-03-03 22:56:20 -05:00
David A. Mellis
b0ab2bc48b
Rearranging internal #defines in headers.
2011-03-03 18:57:05 -05:00
David A. Mellis
58d683239d
Removing optimized digitalWrite(), digitalRead(), pinMode().
2011-03-03 18:46:45 -05:00
David A. Mellis
d7a87f18f0
Re-arranging header files and small fixes to optimized core functions.
2011-03-02 23:05:25 -05:00
David A. Mellis
218eb5e807
Moving wiring.h contents into Arduino.h.
2011-03-01 20:00:16 -05:00
David A. Mellis
e009c5c6c6
Renamed WProgram.h to Arduino.h.
2011-03-01 19:52:13 -05:00
David A. Mellis
c8b8b8724c
Removing BYTE keyword (use Serial.write() instead).
2011-02-26 13:58:03 -05:00
David A. Mellis
5515442dbb
Small optimization in HardwareSerial.
...
begin(long) -> begin(unsigned long)
2011-02-25 18:36:46 -05:00
David A. Mellis
860c6f2031
Revert "Changes to optimized digitalWrte(), etc."
...
This reverts commit aa1f1cbda9d6bb52785f98b40746920853d6579b.
2011-02-18 10:41:29 -05:00
David A. Mellis
63515122ca
Revert "Adding noAnalogWrite() function to disable PWM."
...
This reverts commit 38d4a34fec6925b29a732d13e200f54ee4b42025.
2011-02-18 10:40:56 -05:00
David A. Mellis
cd050d05d1
Adding noAnalogWrite() function to disable PWM.
...
Also, removing the inline version of digitalPinToTimer() (since we're not optimizing the functions that use it anyway). The noAnalogWrite() function is in wiring_analog.c, deriving from the previous turnOffPWM() which has moved from wiring_digital.c.
http://code.google.com/p/arduino/issues/detail?id=476
2011-02-12 14:47:08 -05:00
David A. Mellis
eed15e48d6
Changes to optimized digitalWrte(), etc.
...
Factoring out the implementation of digitalWrite(), digitalRead(), and pinMode() into macros that can either be inlined (for constant pin numbers) or executed within a function (non-constant pins). Removing testing for timers on pins in digitalWrite(), digitalRead(), and pinMode(). Moving pin to port macros from pins_arduino.h to wiring.h.
2011-02-11 19:29:46 -05:00
David A. Mellis
3696fa0446
Optimized digitalWrite(), etc. from Alvaro Lopez.
2011-02-11 17:53:24 -05:00
David A. Mellis
11dd06436d
Changing String append to use realloc(); thanks to Paul Stoffregen.
...
http://code.google.com/p/arduino/issues/detail?id=332
2010-12-11 15:22:07 -05:00
David A. Mellis
053ec1b989
Replacing custom String.toInt() function with a call to atol().
2010-12-03 23:12:41 -05:00
David A. Mellis
4a90c4bd40
Redoing 448222e4b65e0cf44dfc0c494f7f76901f1fabea without all the extra files.
...
Adds toInt() to String, WCharacter.h (from Wiring), and an SD Datalogger example.
2010-11-29 15:20:30 -05:00
David A. Mellis
80c5173bfd
Revert "added toInt() function to WString".
...
This reverts commit 448222e4b65e0cf44dfc0c494f7f76901f1fabea.
2010-11-29 15:14:10 -05:00
Tom Igoe
15f51fc1f8
added toInt() function to WString
2010-11-29 11:31:00 -05:00
David A. Mellis
eb9c51d43c
pulseIn() now times out while measuring the pulse, not just while waiting for it to start.
2010-11-22 23:33:59 -05:00
David A. Mellis
6ac63fbadf
SD File object implements Stream.
...
Added peak() and available() using a single byte buffer.
Added flush().
2010-11-20 11:45:05 -05:00
David A. Mellis
e46c6f46af
Fixing bug w/ subsequent calls to tone().
...
http://code.google.com/p/arduino/issues/detail?id=397
2010-11-11 23:57:12 -05:00
David A. Mellis
407d6bbc6f
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
08102b6370
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
cba4789840
Modifying Tone.cpp to use register-based (not CPU-based) #ifdefs.
2010-11-08 23:09:29 -05:00
David A. Mellis
a4afb42b08
Modifying basic functions (digital and analog, read and write) to use register-based ifdefs, not cpu-based.
...
http://code.google.com/p/arduino/issues/detail?id=307
http://code.google.com/p/arduino/issues/detail?id=316
http://code.google.com/p/arduino/issues/detail?id=323
http://code.google.com/p/arduino/issues/detail?id=324
2010-10-17 17:55:53 -04:00
David A. Mellis
b861fe903f
Making attachInterrupt() check registers, not CPUs.
...
Patch by Mark Sproul, via Christian Maglie.
http://code.google.com/p/arduino/issues/detail?id=340
2010-10-17 14:05:46 -04:00