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