Cristian Maglie
934475b75b
SoftwareSerial: fix flush() behaviour
...
Fix #4029
2015-11-11 16:28:48 +01:00
Cristian Maglie
02bb3b96b3
Update recipe.ar.pattern in SAM platform to us archive_file_path
2015-11-06 23:57:10 +01:00
Cristian Maglie
abcc75bcf1
Upgraded SAM core version to 1.6.6
2015-11-06 23:25:31 +01:00
Sandeep Mistry
7380750a69
Remove tx_pin_write from SoftwareSerial.h
...
It’s not implemented anywhere and unused.
2015-11-05 15:39:11 -05:00
Sandeep Mistry
6318f1bf2a
Remove unused param warning
2015-11-05 14:28:40 -05:00
Sandeep Mistry
12ebdfe8a0
Add inline to recv and setRxIntMsk to remove warning ( #4078 )
2015-11-05 14:28:29 -05:00
Cristian Maglie
f678ad423a
[SAM] Remove useless <cstddef> includes (fix regression)
...
See #4082
2015-11-05 20:07:02 +01:00
Sandeep Mistry
5be4466fd7
Set mode to SPI_CONTINUE for first byte transfer in SPI.transfer16(...)
...
Update to #4081
2015-11-05 10:02:50 -05:00
Sandeep Mistry
ed5597dad0
Add SPI.transfer16(...) API's
2015-11-04 15:49:08 -05:00
Cristian Maglie
53fd24e8aa
Updated sam core version to 1.6.5
2015-11-03 14:38:45 +01:00
Cristian Maglie
9b070aa90f
Updated avr core version to 1.6.9
2015-11-03 11:34:03 +01:00
Cristian Maglie
a7a12037c7
[HID] Added return value to HID SendReport (sam core)
2015-10-30 13:23:46 +01:00
Cristian Maglie
21168e1b5d
[PUSB] Fixed return value for HID_::SendReport
2015-10-30 13:00:33 +01:00
Nico
741d5dff9e
[PHID] send data if report ID was sent successful
...
If the first sending was not successful it is better to abort. Then we get a return value of -1 (instead of -2 if the 2nd call will also fail) and we do not need to block even longer, with another timeout.
2015-10-30 12:58:14 +01:00
NicoHood
cf4d7e1ffb
Added return value to HID SendReport
2015-10-30 12:58:14 +01:00
Cristian Maglie
d3e3b8b377
Merge branch 'sam-wire-repeated-starts' of https://github.com/sandeepmistry/Arduino
2015-10-29 21:18:11 +01:00
Sandeep Mistry
77179d78d0
Add support for repeated starts in slave mode
...
From the data sheet TXCOMP is only set after a stop or repeated start
and address change, but EOSACC is set for a stop or repeated start when
the address remains the same. This change removes the check for TXCOMP
when not idle, to support repeated starts for both RX and TX.
2015-10-29 16:15:52 -04:00
Sandeep Mistry
851efaefd7
Remove steps to disable pull ups as they are not needed
...
The Due has external pull-ups on the SDA0 and SCL0, and PIO_Configure
in Wire*_Init does not enable then.
2015-10-29 16:03:32 -04:00
Sandeep Mistry
fdef4f27fe
Rebuild libsam
2015-10-29 16:03:32 -04:00
Sandeep Mistry
d655bd5af9
Add end callback for deinitialization on end
2015-10-29 16:03:32 -04:00
Sandeep Mistry
2737305f54
implement Wire.end() for SAM core
...
also moved common reset and disable code in libsam TWI_ConfigureMaster
and TWI_ConfigureSlave functions to new TWI_Disable function, which is
used in TwoWire::end()
2015-10-29 16:03:32 -04:00
Cristian Maglie
b01eda179a
Print not aborting on write failure
...
See #3614
2015-10-26 12:00:47 +01:00
Cristian Maglie
9552cc6ce2
Merge branch 'arduinoGemmaInterrupts' of https://github.com/agdl/Arduino
2015-10-23 11:00:25 +02:00
Arturo Guadalupi
d52b5a87ba
Gemma digitalPinToInterrupt support
...
Added support for Arduino Gemma as required in #3929
2015-10-23 10:44:02 +02:00
Nico
6fe9294368
Increased 32u4 maximum pin number
2015-10-23 10:41:56 +02:00
Arturo Guadalupi
e3351f6fb1
Ethernet digitalPinToInterrupt support
...
Added support for Arduino Ethernet as required in #3929
2015-10-23 10:16:43 +02:00
Sandeep Mistry
c71f5e9f88
check TWWC (Write Collision Flag) bit after setting TWDR
...
as suggested by @earlyprogrammer in #2173 , to ensure TWDR value is set
if there is a write collision
2015-10-22 16:33:00 +02:00
Sandeep Mistry
48ff3a10ad
release TWI bus right after stop or repeated start is condition
...
this resolves timing issues seen in #1477
2015-10-22 16:29:43 +02:00
Cristian Maglie
22dd1cbb99
Merge branch 'nativeUSB_serialNumber_due' of https://github.com/facchinm/Arduino into HEAD
2015-10-21 16:54:59 +02:00
Martino Facchin
775c82bbed
SAM: add iSerial USB field
2015-10-21 16:16:52 +02:00
Cristian Maglie
c102995e92
Merge remote-tracking branch 'arduino/master' into HEAD
2015-10-21 15:53:59 +02:00
Martino Facchin
b945df9220
[USB] use plugged modules name to create iSerial field
2015-10-21 15:23:56 +02:00
Antonio C. Domínguez Brito
296c5f0fbf
PIO[ABCD] handlers improvement using ATSAM3X8E CLZ instruction
2015-10-15 09:04:12 +01:00
NicoHood
9fe2023c28
[PHID] Fixes protocol on reenumeration
2015-10-12 18:05:34 +02:00
Martino Facchin
bf609ecc4c
[USB] remove all warnings from SAM USB core
2015-10-12 14:43:24 +02:00
Martino Facchin
ddae105dc3
[HID] port to stable PluggableUSB API
2015-10-12 14:41:23 +02:00
Martino Facchin
b4541209cb
adapt SAM core to PluggableUSB stable API
2015-10-12 14:41:05 +02:00
Cristian Maglie
a151349a01
[HID] renamed HIDDescriptorListNode to HIDSubDescriptor
2015-10-12 12:24:07 +02:00
Cristian Maglie
11440d3fd7
[PUSB] Renamed PUSBListNode to PluggableUSBModule
2015-10-12 12:14:07 +02:00
Cristian Maglie
80b79002fd
[HID] made HIDDescriptorListNode.length constant
2015-10-12 11:59:08 +02:00
NicoHood
e69021550e
[PHID] Added missing GET_IDLE Request
2015-10-11 14:39:36 +02:00
NicoHood
5e813b314b
[PHID] Added some hints for further optional implementations
2015-10-10 13:11:31 +02:00
NicoHood
14ddc8b0bf
Added official HID definitions
...
Since the HID library adds some general HID definitions and structs, it is very useful to also include this in a custom library.
If you dupe the information you have problems of redeclaration.
Having those defintions inside the official HID library is essential for a good working additional HID API.
2015-10-10 12:49:45 +02:00
Nico
2cc3bb605b
[PUSB] Minor Style change
2015-10-09 22:10:45 +02:00
Nico
79f5715c21
Remove unnecessary include
...
Its included by HID.h anyways.
2015-10-08 17:24:09 +02:00
Cristian Maglie
fb4f5066bf
[HID] Improved checks in getDescriptor() method
2015-10-08 16:38:57 +02:00
NicoHood
05477fc85d
[PUSB] Removed unnecessary endpoint and interface function
2015-10-07 20:39:50 +02:00
NicoHood
c8867462a8
[PHID] Added SetReport function
...
This commit just shows other that this option is available and not implemented.
You may use this to determine the Led Lights state of a keyboard or transmit data via RAWHID from the PC.
Quick usage guide:
int length = ((setup.wValueH << 8) | setup.wLength);
USB_RecvControl((uint8_t* data, USB_EP_SIZE); // Needs to be splitted into USB_EP_SIZE packets, not shown here. See HID Project.
2015-10-07 20:37:05 +02:00
NicoHood
0f9f63f2a5
[PUSB] Made getDescriptor() and setup() more flexible
...
Alternatively we can only pass the wIndex to getDescriptor but I suggest to just pass the pointer aka reference of the whole setup.
In guess (havent tested this) that this results in more or less the code size but its a) idential with the other functions and b) we late have more flexibility here.
The Code got a quick SerialKeyboard.ino test
2015-10-07 19:02:40 +02:00
NicoHood
6151972b74
[PUSB] Changed Interface + Endpoint to unsigned variables
...
The iterations in the for loop also use unsigned and the setup struct etc as well.
There was no change in HID required since we just init the inherited variables via constructor and the type is never mentioned.
2015-10-07 18:45:10 +02:00
Cristian Maglie
5b1b0330b2
[PUSB] renamed some parameters
2015-10-07 13:21:21 +02:00
NicoHood
8bc21f7e36
Small return value error check correction
2015-10-07 12:39:18 +02:00
NicoHood
7fdb0efc98
Removed not needed public statement for root node
2015-10-03 07:56:48 +02:00
Martino Facchin
65b8430fec
[PUSB] Fix static initialization order fiasco
...
For details see:
https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
2015-10-02 11:59:24 +02:00
Cristian Maglie
d13aadc7d5
[HID] removed HIDDescriptor field
...
The field is now built on-the-fly on the stack and sent over USB.
This change increase Flash usage and decrease SRAM usage:
before: 6114 / 241
after: 6152 / 216 (removed HIDDescriptor field)
delta: +38 / -25
SRAM is a much more scarse resource and this change free up to
about 10% of the "base" usage.
2015-10-02 11:59:24 +02:00
Cristian Maglie
214b260a82
[HID] Code cleanup (no semantic changes)
2015-10-02 11:59:23 +02:00
Cristian Maglie
81aa7df093
[HID] removed unused modules_count field
2015-10-02 11:59:23 +02:00
Cristian Maglie
8a5ad75c50
[PUSB] Fixed checks on return values
2015-10-02 11:59:23 +02:00
Cristian Maglie
1851fcc23c
[USB] Fixed some compiler warnings
2015-10-02 11:59:23 +02:00
Cristian Maglie
d1f0c6953a
[PUSB] Fixed the correct number of endpoints
2015-10-02 11:59:23 +02:00
Cristian Maglie
e823ef0c16
[PUSB] Fixed check for available endpoints
...
The check for available slot in PluggableUSB is done on the endpoint
and not on the number of plugged modules.
The modulesCount field is no longer useful and it has been removed.
2015-10-02 11:59:23 +02:00
Cristian Maglie
183ec1c83f
[PUSB] No more static fields in PluggableUSB class
2015-10-02 11:59:23 +02:00
Cristian Maglie
9acbbe63c0
[PUSB] epType array is now part of HID class
2015-10-02 11:59:23 +02:00
Cristian Maglie
2d70691dbe
[HID] Removed static fields in HID class
...
There is still the epType[] array to be handled in some way.
2015-10-02 11:59:23 +02:00
Cristian Maglie
0369b8ec33
[PUSB] The latest fields are now set via constructor
2015-10-02 11:59:23 +02:00
Cristian Maglie
0dfa815ce4
[PUSB] callbacks are now pure virtual methods
...
This change allows the compiler to handle callbacks resolution.
Callbacks now must be implemented on the class that extends
PUSBListNode and this is forced by compiler by means of pure
virtual methods.
Also the calls to HID.interface() and HID.endpoint() can now
be simplified to interface() and endpoint() respectively since
the methods are no more static.
2015-10-02 11:59:23 +02:00
Cristian Maglie
2ac2a27173
[PUSB] Moved static members inside HID_ class
...
This commit prepares for the next refactoring
2015-10-02 11:59:22 +02:00
Cristian Maglie
6ffd7e39ba
[PUSB] replaced u8 with uint8_t
2015-10-02 11:59:22 +02:00
Cristian Maglie
8f259c8a80
[PUSB] Selected interface and endpoint are now part of PUSBListNode
...
The method
int8_t PluggableUSB::addFunction(PUSBListNode *, uint8_t *)
has been changed to
bool PluggableUSB::plug(PUSBListNode *node)
since both EP and Interfaces are now saved directly into node
2015-10-02 11:59:22 +02:00
Cristian Maglie
5e14b1fe37
[HID] Now HID extends directly PluggableUSBListNode
...
This avoid duplicate instatiation of callback and save a
considerable amount of flash.
2015-10-02 11:59:22 +02:00
Cristian Maglie
5aeff8ec25
[PUSB] Global functions PUSB_* are now methods of PluggableUSB class
2015-10-02 11:59:22 +02:00
Cristian Maglie
3fe6272feb
[PUSB] PUSBCallback struct has been merged into PUSBListNode
...
This slightly simplifies PluggableUSB API.
2015-10-02 11:59:22 +02:00
Arturo Guadalupi
7af5e7af23
Added LED_BUILTIN to GEMMA
...
as asked in #3907
2015-10-01 17:09:59 +02:00
Cristian Maglie
e3d629d591
Merge remote-tracking branch 'arduino/master'
2015-09-29 18:52:38 +02:00
Cristian Maglie
abe05b90fa
Removed not used PUSB_Begin() (also in SAM)
...
See #3892
2015-09-29 18:50:43 +02:00
Sandeep Mistry
cc3a1e7bff
Correct typo
2015-09-29 11:35:13 -04:00
Nico
d257764862
Removed not used PUSB_Begin()
2015-09-29 17:02:07 +02:00
Cristian Maglie
ffd2943955
[HID] Added missing return in HID.begin()
2015-09-28 17:05:36 +02:00
Cristian Maglie
43d3428d2b
[HID] Added missing const in length
2015-09-28 17:05:36 +02:00
Cristian Maglie
953e6fa206
[HID] Removed unused PUSBReturn structure
2015-09-28 17:05:35 +02:00
Cristian Maglie
7d985f97a3
[HID] Changed 'u8' to 'uint8_t' in definitions
2015-09-28 17:05:35 +02:00
Nico
fa52c41ede
Removed not needed Timer warning
...
Timer is declared above, so nothing is missing here.
2015-09-28 16:30:40 +02:00
Nico
5e1b4c7434
Removed Timer warnings when Timer 2 is not present
2015-09-28 16:30:40 +02:00
Nico
3bbff6fd2a
Remove Compiler Warning in Tone.cpp
2015-09-28 16:30:39 +02:00
Nico
900ae49ee7
Fix compiler warning in CDC.cpp
2015-09-28 16:30:39 +02:00
Nico
228fa37568
Fix compiler warnings in USBCore.cpp
2015-09-28 16:30:39 +02:00
Cristian Maglie
209b0796e6
[HID] added 'const' qualifier in HID initialization
...
See https://github.com/arduino/Arduino/pull/3840#discussion_r40438845
2015-09-28 13:32:01 +02:00
Cristian Maglie
fba6ca88ed
[HID] fixed wrong datatype for descriptor len
...
See https://github.com/arduino/Arduino/pull/3840/files#r40438845
2015-09-28 13:23:12 +02:00
Cristian Maglie
e4d63adf45
Merge branch 'pluggable_hid_impr' of https://github.com/cmaglie/Arduino
2015-09-28 12:06:35 +02:00
Arturo Guadalupi
bb1f584019
Added Arduino Zero exclusion to README
2015-09-28 11:29:18 +02:00
Cristian Maglie
435fc323e0
SAM: tidy up -mcpu and -mthumb params in platform.txt
2015-09-25 17:00:22 +02:00
Cristian Maglie
9eeeb50050
SAM: small cosmetic fix to platform.txt
2015-09-25 16:58:38 +02:00
Martino Facchin
53049046cb
Merge pull request #3864 from facchinm/pulseInLongOVF
...
fix pulseInLong considering overflow
2015-09-25 16:05:35 +02:00
Cristian Maglie
563a7306b9
Fixed another regression in IPAddress.h
...
If the includer tries to inlcude IPAddress.h without first including
WString.h the build will fail.
2015-09-24 15:52:32 +02:00
Federico Fissore
737faaaba5
{build.path}/{archive_file} is now {archive_file_path} in recipe.ar.pattern
2015-09-24 11:28:26 +02:00
Cristian Maglie
7d0355c8f1
SAM: Stop build on unresolved symbols
...
Previously the linker flag:
-Wl,--warn-unresolved-symbols
prevented the build to fail (the unresolved symbols were just
displayed as a warning).
See also: https://github.com/arduino/arduino-builder/issues/14
2015-09-24 10:31:15 +02:00
Cristian Maglie
401c4f0cf8
HID: merged HID_Descriptor into HIDDescriptorListNode
...
This simplifies the object model and produce a small gain in code
size and performance.
2015-09-22 16:51:30 +02:00
Cristian Maglie
f0cf13c89b
HID: Renamed fields in HIDDescriptorListNode and HID_Descriptor
...
In particular HIDDescriptorListNode.cb has been renamed to
HIDDescriptorListNode.descriptor because it contains decriptor data
and not callbacks.
Moreover the HID_Descriptor.descriptor field has been renamed
to HID_Descriptor.data so the structure has now two fields length
and data.
typedef struct __attribute__((packed)) {
uint16_t length;
const void* data;
} HID_Descriptor;
class HIDDescriptorListNode {
public:
HIDDescriptorListNode *next = NULL;
const HID_Descriptor *descriptor;
HIDDescriptorListNode(const HID_Descriptor *d) : descriptor(d) { }
};
This imply a change in the use of the node from:
node->cb->lenght
node->cd->descriptor
to
node->descriptor->length
node->descriptor->data
2015-09-22 16:49:14 +02:00
Arturo Guadalupi
9eaea4205d
Modified reference to Leonardo only in the examples
...
According to #3786 removed the reference to Leonardo only in while(!Serial) of the examples.
Changed in in "wait for serial port to connect. Needed for native USB port only"
2015-09-21 14:58:58 +02:00
Cristian Maglie
8c3c54ea28
Merge branch 'patch-7' of https://github.com/NicoHood/Arduino
2015-09-21 12:03:26 +02:00
Martino Facchin
480cd227ea
fix pulseInLong considering overflow
...
fixes #3830
2015-09-21 11:59:20 +02:00
Martino Facchin
606d56b3e5
SAM: fix pulseInLong timeout using micros()
2015-09-21 11:10:33 +02:00
Martino Facchin
6cdafbc20c
Merge pull request #3825 from NicoHood/patch-6
...
Remove Raw HID definitions at wrong place
2015-09-21 10:31:53 +02:00
Martino Facchin
c7b27431a9
pulseInLong: fix incorrect timeout handling
2015-09-21 10:24:48 +02:00
Nico
8a96e75645
Fix CDC Serial buffer size determination
2015-09-20 11:08:49 +02:00
Nico
441fd561cf
Fix HW Serial buffer size determination
2015-09-20 11:07:19 +02:00
Nico
9b91da35b7
Remove Raw HID definitions at wrong place
2015-09-20 11:04:42 +02:00
Federico Fissore
3030a5c57a
Updating arduino-builder to 1.0.0-beta8
2015-09-18 13:32:27 +02:00
Cristian Maglie
3bd810deb8
Merge branch 'ethernet-dns-fix' of https://github.com/cmaglie/Arduino
2015-09-18 11:30:45 +02:00
Cristian Maglie
a1e2c4fa8e
Fixed wrong category in EEPROM
...
See #3812
2015-09-18 11:23:11 +02:00
Cristian Maglie
e2f625290f
Moved build artifacts into root build folder
...
The intermediate files used for build (.o, .a ...) are still
in subfolders to avoid conflicts.
Fix #3807
2015-09-18 11:21:13 +02:00
Cristian Maglie
949ef094f1
Added categories to libraries
...
Fix #3812
2015-09-18 11:01:08 +02:00
Cristian Maglie
cc0d3322d1
Fixed wrong condition in turnOffPWM(..)
...
Fix #2163
2015-09-18 11:01:08 +02:00
Federico Fissore
455d03e460
Adding preprocessing recipes to AVR core
2015-09-15 12:15:48 +02:00
Federico Fissore
de8390f6db
Updating arduino-builder to 1.0.0-beta4
2015-09-15 12:15:39 +02:00
Martino Facchin
d9a7b5df41
Merge pull request #3542 from facchinm/plugUSB_sam
...
Add pluggableUSB capabilities to SAM core
2015-09-10 18:18:31 +02:00
Cristian Maglie
e3909b4e2c
Added IPAddress::fromString(....) function
2015-09-09 12:03:29 +02:00
Martino Facchin
a5ad4744b5
fix OUT endpoints
...
was using only lower 8 bits of configuration registers
2015-09-04 10:03:40 +02:00
Cristian Maglie
f8b764a3a6
...and also a leading ','... (oops 2)
...
See #2408
2015-09-01 10:58:48 +02:00
Cristian Maglie
8720384f68
Added missing #ifdef in WInterrupts.c... (oops)
...
See #2408
2015-09-01 10:11:43 +02:00
Cristian Maglie
53db220016
Added EXTERNAL_NUM_INTERRUPTS for AVR xxU2 series
2015-08-31 18:12:13 +02:00
Andrew J. Kroll
8c440df280
AVR: Faster Interrupts, no size change.
...
Fixes #2408
2015-08-31 13:55:07 +02:00
Cristian Maglie
d8bf00b951
Release new boards as AVR core 1.6.8
2015-08-27 11:00:25 +02:00
Cristian Maglie
1c1ecb65ac
Added support to Genuino boards (drivers, boards.txt entries, bootloaders)
2015-08-27 10:40:03 +02:00
Nate Williams
64cee7bbbc
Wire (AVR): Fix bug with repeated START
...
Fix #66
2015-08-26 16:02:02 +02:00
Sandeep Mistry
d00a3ceba3
implement Wire.end() for AVR core
2015-08-25 10:24:24 -04:00
onovy
bf2ef13b50
Tone: Added missing break
2015-08-15 21:11:52 +02:00
NicoHood
4de21f7d1d
Added TXLed to Leonardo pin definition file
2015-08-15 15:50:57 +02:00
Cristian Maglie
695fc40fbd
Merge branch 'cdc-settings' of https://github.com/matthijskooijman/Arduino
2015-08-14 13:37:00 +02:00
Martino Facchin
5fe796d52e
Merge pull request #3640 from NicoHood/USB-Core-Fixes
...
Usb core fixes
2015-08-13 09:39:21 +02:00
NicoHood
60e64cfd35
Added u2 Series support
2015-08-12 17:48:17 +02:00
NicoHood
7bd77de70b
Precised USB Endpoint definitions
2015-08-12 17:48:17 +02:00
NicoHood
fd6f57d2d7
Added 16 byte endpoint support
2015-08-12 17:48:17 +02:00
NicoHood
a1cf7042b2
Fixed HID Reports >255 bytes
2015-08-12 17:48:17 +02:00
NicoHood
b97b2519d1
Added missing static inline to USB Recv function
2015-08-12 17:48:17 +02:00
NicoHood
344897301c
Made Magic Key Settings more flexible
2015-08-12 17:48:09 +02:00
Chuck Todd
25d81c98e4
Print not Aborting on Write() failure
...
Print::write(const uint8_t *buffer, size_t size) and Print::print(const
__FlashStringHelper *ifsh) would continue calling write(char) after a
failed write(char) this behavior would render returned count unuseable
see arduino/Arduino issue #3614
2015-08-12 11:47:57 +02:00
Reilly Grant
a20b44801a
Fix links to 3rd party hardware specification.
...
The number of hyphens in this URL has apparently changed.
2015-07-31 15:54:22 -07:00
Peter Van Hoyweghen
4f87112c2e
Add Serial_::availableForWrite().
...
This makes the CDC "Serial" object on the Leonardo and similar boards
support this recently introduced method as well. The CDC code in the sam
core is not changed.
2015-07-31 14:06:20 +02:00
Matthijs Kooijman
9b7b23f045
Prevent losing bytes in HardwareSerial::end()
...
end() already waited for the buffer to be empty, but then there could
still be two bytes in the hardware registers that still need to be
transmitted (which were dropped or kept in the buffer, depending on the
exact timing).
This changes the wait loop to a call to the flush() function, which
already takes care of really waiting for all bytes to be transmitted,
meaning it is safe to turn off the transmitter.
2015-07-31 14:06:20 +02:00
Matthijs Kooijman
b58f239400
Add Serial_::readBreak() to process SEND_BREAK requests
...
This allows detecting when the USB host sends a break request and what
the value of the request was. See the comments in USBAPI.h for details.
This just modifies the avr core, not the sam core.
2015-07-31 14:06:19 +02:00
Matthijs Kooijman
96f7b966bc
Expose serial settings from CDC virtual serial port
...
This allows a sketch to find out the settings chosen by the USB host
(computer) and act accordingly.
Other than reading the DTR flag and checking if the baudrate is 1200,
the regular CDC code doesn't actually use any of these settings.
By exposing these settings to the sketch, it can for example copy them
to the hardware UART, turning the Leonardo into a proper USB-to-serial
device. This can be useful to let the computer directly talk to whatever
device is connected to the hardware serial port (like an XBee module).
The Teensy core already supported these methods. This code was
independently developed, but the method names were chosen to match the
Teensy code, for compatibility (except that `dtr()` and `rtr()` return
`bool`, while the Teensy version return a `uint8_t`).
This change is applied to both the avr and sam cores, which have a very
similar CDC implementation.
2015-07-31 13:40:43 +02:00
Martino Facchin
2acda414aa
port PluggableUSB to sam core
2015-07-17 12:16:38 +02:00
Martino Facchin
a261e6cf7c
remove HID from core
2015-07-17 12:16:09 +02:00
Martino Facchin
b2381506a2
sam: add HID library
2015-07-17 12:13:21 +02:00
Martino Facchin
af290fc5a3
rework HID-based libraries and add Due fallback
2015-07-16 13:13:53 +02:00
Martino Facchin
e1a0350062
allow HID submodules to create runtime descriptors
...
with this PR you can add
\#include Keyboard.h
\#include Mouse.h
\#include HID.h
in the top of the sketch and you will expose a Mouse+Keyboard
From the library pow, simply add
static HID_Descriptor cb = {
.length = sizeof(_hidReportDescriptor),
.descriptor = _hidReportDescriptor,
};
static HIDDescriptorListNode node(&cb);
HID.AppendDescriptor(&node);
in the class' constructor and you are done!
2015-07-16 13:13:52 +02:00
Martino Facchin
6a9568d3e1
fix pluggableUSB linked list
2015-07-16 13:13:52 +02:00
Martino Facchin
8a45883230
save RAM content overridden by bootloader magic
...
and restore it in case of aborted reboot
use RAMEND-1 as suggested by @yyyc514 in PR #2474
of course it's not a real solution but we cannot force everyone to update the bootloader using an external programmer
2015-07-16 13:13:52 +02:00
Martino Facchin
5defaeaa97
rework HID class functions scopes
2015-07-16 13:13:52 +02:00
Martino Facchin
97a3771772
rename Setup typedef struct to USBSetup
...
was really too common
2015-07-16 13:13:52 +02:00
Martino Facchin
dee43a19d7
fix HID headers
2015-07-16 13:13:51 +02:00
Martino Facchin
9074b1ed18
fix HID descriptors bigger than 127 bytes
2015-07-16 13:13:51 +02:00
Martino Facchin
175240a906
Add support for waking up a host via USB HID
...
this is a rework of commit fbcf94801b
2015-07-16 13:13:51 +02:00
Martino Facchin
91a115a353
move HID library to AVR specific location
2015-07-16 13:13:51 +02:00
Martino Facchin
e211f1ea76
remove setupUSB weak hook and replace with global constructors
...
thanks @matthijskooijman
2015-07-16 13:13:49 +02:00
Martino Facchin
89928b4e15
rework PUSBCallbacks initialization
2015-07-16 13:13:39 +02:00
Martino Facchin
ada0e4c2f3
remove 3 endpoints to match at32u4 limit
2015-07-16 13:12:15 +02:00
Martino Facchin
f37547e8fd
add numInterfaces field to PUSBCallbacks
2015-07-16 13:12:15 +02:00
Martino Facchin
7b5c25f534
implement PUSB modules as linked list
2015-07-16 13:12:14 +02:00
Martino Facchin
f67318a8b1
remove useless variables
2015-07-16 13:12:14 +02:00
Martino Facchin
91ccab4f09
make CDC function non removable
2015-07-16 13:12:14 +02:00
Martino Facchin
b2a6b61a2f
add weak setupUSB() hook
...
override this function to insert additional USB endpoints
2015-07-16 13:12:14 +02:00
Martino Facchin
ec43b6c829
remove useless variable
2015-07-16 13:12:14 +02:00
Martino Facchin
1aec25b855
add PluggableUSB module
2015-07-16 13:12:14 +02:00
Martino Facchin
1f534eac35
move _initEndpoints from PROGMEM to RAM
2015-07-16 13:12:14 +02:00
Martino Facchin
2c5dd20298
Use generic composite device descriptor
2015-07-16 13:12:13 +02:00
Martino Facchin
5ee69a70ee
Move EP defines to header
2015-07-16 13:12:13 +02:00
Martino Facchin
09460dd8c9
Remove HID core library
2015-07-16 13:12:13 +02:00
Matthijs Kooijman
7fd6244621
Enable C11 support
...
This uses the gnu11 standard, which is C11 with GNU extensions.
Previously, gnu89 was being used, which is pretty ancient by now. C99
brings some important improvements, some of which were already available
and used even without this option. C11 is more recent and brings more
minor improvements. Most notable feature is the static_assert statement,
allowing checking invariants at compiletime using the full C
expressions.
2015-07-16 13:06:10 +02:00
Matthijs Kooijman
ebeb7843d2
Check for __cplusplus >= 201103L as well as __GXX_EXPERIMENTAL_CXX0X__
...
Gcc 4.8 defines __cplusplus as 201103L, so we can check for that now. It
still also defines __GXX_EXPERIMENTAL_CXX0X__, but this could help on
other compilers, or if gcc ever decides to stop defining the
experimental macro.
2015-07-16 13:06:10 +02:00
Matthijs Kooijman
ddf4d878fd
Enable C++11 support
...
This uses the gnu++11 standard, which is C++11 with GNU extensions.
C++11 should be full compatible with the previously used C++98
standards, so all pre-existing sketches should continue to work.
2015-07-16 13:06:09 +02:00
Matthijs Kooijman
770a695c85
Explicitely specify C and C++ standards to use
...
This does not change anything, it just makes the defaults explicit.
2015-07-16 13:06:09 +02:00
Martino Facchin
5a37e94788
fix leftover on pinMode(OUTPUT)
2015-07-16 10:44:37 +02:00
Martino Facchin
d1c65ca8fe
keep track of pin status using g_pinStatus array and act accordingly
...
This commit adds 80 bytes to RAM usage and some overhead in normal operations.
2015-07-14 17:29:36 +02:00
Martyn Ranyard
94af627772
Bootloaders: wrong #ifdefs, should be defined() not just tested (i.e. noteq 0)
...
Close #126
2015-07-14 16:16:31 +02:00
Marc-Andre Ferland
33255ef46d
Fix adc_configure_trigger enabling and disabling FreeRun Fix changing trigger type
2015-07-14 12:56:05 +02:00
Martyn Ranyard
59b5311cdf
Bootloaders: adds support for 328-nonp chips
2015-07-14 12:55:22 +02:00
Martyn Ranyard
3831c9c519
-O2 in new avr-gcc makes too big a bootloader to fit on 328(and 328p)
2015-07-14 12:37:36 +02:00
Martyn Ranyard
8f5ca0a943
Fixed EEPE flag check.
...
Here, using the flag itself makes the bootloader build where it currently does not for the 328 amongst others
2015-07-14 12:28:13 +02:00
Martino Facchin
8589c792cb
Due: modify ADC enable/disable sequence
...
to avoid the bug #2198 simply reconfigure the pin -> no additional overhead if pinMode configuration is performed at the beginning of the sketch, 4 to 25% overhead on all analogRead() due to the additional check
2015-07-14 11:19:51 +02:00
Tayler Mulligan
9491c1f308
Defaults output pins to LOW on Due
...
When a pin is designated as an output on the Arduino Due, the pin is set
to a HIGH logic level. Changing the default pin state to LOW makes the
behaviour correspond with AVR.
2015-07-14 10:34:54 +02:00
Federico Fissore
fe3fa56a15
Yun bootloader without blink
2015-07-07 17:15:42 +02:00
Federico Fissore
5e98cd8528
Examples: mass code format. See example_formatter.conf
2015-07-06 15:19:05 +02:00
Matthew Lowe
39c3f8bf61
Support for repeated starts added to SAM Wire library
...
Additional interface method ported to avr for compatibility
Fix issue #2428 .
2015-07-03 16:59:30 +02:00
Federico Fissore
431f319aca
Removed a handful of SVN expansion keywords. See #277
2015-07-03 10:38:07 +02:00
Martino Facchin
98d0a72fdd
Merge pull request #1869 from kevin-pololu/due-wire-available
...
SAM Wire: fixed NACK/timeout behavior of requestFrom() and available()
2015-07-01 12:43:44 +00:00
Federico Fissore
5f31f4b8dd
Fixed missing "sketch" folders in some paths of both AVR and SAM cores
2015-06-29 16:10:54 +02:00
Federico Fissore
e097439eab
Compiler: sketch files get compiled into "sketch"
2015-06-29 15:11:45 +02:00
Federico Fissore
5a35be06da
Compiler: cores files get compiled under "core", libraries under "libraries". Fixes #2997
2015-06-29 15:11:45 +02:00
Matthijs Kooijman
07c4d958c0
Warn about increasing HardwareSerial buffers to > 256
...
Properly supporting bigger buffers need better atomicity code, which
isn't implemented yet. Until it is, best to add a warning. See #2405 .
2015-06-18 16:36:07 +02:00
Matthijs Kooijman
5b4ebcf959
Support the Atmel STK500 development board for ISP
2015-06-05 18:43:25 +02:00
ziotibia81
ec4006d1ee
Added comment about Bus Pirate
2015-06-05 18:43:23 +02:00
ziotibia81
cb9a14835c
Added support for Dangerous Prototypes Bus Pirate as ISP
...
Close #2385
2015-06-05 18:43:12 +02:00
Fede85
4f957da22a
add Arduino Gemma Bootloader source files
2015-06-01 20:00:54 +02:00
Martino Facchin
ed1b8eb486
Add a Stream::find(char) method
2015-06-01 14:06:32 +00:00
Cristian Maglie
074d910857
Fixed unused argument warning
2015-05-30 15:19:44 +02:00
Cristian Maglie
2cbdc121e9
Fixed unused variables warnings and indentation
2015-05-29 20:02:50 +02:00
chromhelm
cd9d30a8fe
Saving some bytes in HardwareSerial::write
2015-05-29 18:12:24 +02:00
Martino Facchin
a7d81d0b1c
pulseIn: add alternative implementation based on micros()
2015-05-29 15:01:38 +02:00
Martino Facchin
bb3963c0e9
pulseIn: add ASM implementation for Due
2015-05-29 15:01:38 +02:00
Martino Facchin
7a22827359
pulseIn: be consistent with standard API
...
return 0 if timeout has been reached
2015-05-29 15:01:38 +02:00
Martino Facchin
689c654e8d
pulseInASM: rework comment style
2015-05-29 15:01:38 +02:00
Martino Facchin
d4a80be045
pulseIn: add alternative implementation based on micros()
...
pulseInLong is suitable for long pulses in interrupt context
2015-05-29 15:01:38 +02:00
Martino Facchin
93f74f84ce
pulseIn: modify function to use ASM implementation
2015-05-29 15:01:37 +02:00
Martino Facchin
b37b0d1b6d
pulseIn: add ASM implementation
...
this assembly code was generated by avr-gcc 4.8.3
2015-05-29 15:01:37 +02:00
Martino Facchin
0c9f0d50a5
Revert "Temporary fix for pulseIn() regression."
...
This reverts commit 8ddc5198f6
.
To be substituted by ASM generated code
2015-05-29 15:01:37 +02:00
Martino Facchin
d92bf5bdaa
Merge pull request #3202 from Chris--A/randomSeed
...
Modified randomSeed, now uses unsigned long.
2015-05-28 10:54:26 +02:00
Martino Facchin
9d13023075
Merge pull request #3211 from Chris--A/println-optimize
...
Println optimize
2015-05-28 10:24:12 +02:00
Cristian Maglie
b4c5fa7109
Merge pull request #3244 from Lauszus/INT2
...
Check if INT2 is actually defined before issuing warning in detachInterrupt
2015-05-28 09:51:25 +02:00
Martino Facchin
f816e76d47
Merge pull request #3207 from chromhelm/master
...
Fixed bug with HWSerial flushing
2015-05-28 09:44:46 +02:00
Kristian Sloth Lauszus
272d5cc93d
Check if INT2 is actually defined before issuing warning in detachInterrupt
...
This was caused after: https://github.com/arduino/Arduino/pull/3221
2015-05-28 03:42:32 +02:00
Victor Aprea
e9045d8b8a
Add missing case to detachinterrupt
2015-05-24 20:35:23 -04:00
Christopher Andrews
527c7c2572
Updated printLn on SAM core
2015-05-23 01:56:06 +10:00
Cristian Maglie
e273178425
Indent fix.
2015-05-22 17:23:46 +02:00
Cano
c4080efdb5
zero delay fix, ADC prescaler fix
2015-05-22 17:23:46 +02:00
Cano
219914ef22
delayMicroseconds(): added support for 1Mhz, 12Mhz and 24Mhz
...
1Mhz is a default clock speed on Atmega328, many users run it on the
internal 1Mhz clock to save battery power. Up until now
delayMicroseconds() function wasn't taking this frequencies into an
account.
2015-05-22 17:23:45 +02:00
Chris--A
c617562e74
Optimize printLn calls.
2015-05-22 23:00:07 +10:00
chromhelm
ed331a817a
Fixed bug with flushing
2015-05-21 21:42:40 +02:00
Chris--A
0051eadd2a
Modified randomSeed, now uses unsigned long.
2015-05-21 16:52:42 +10:00
Federico Fissore
9166828bfe
Due to website configuration changes, every url starting with http://arduino.cc has been changed to http://www.arduino.cc . Fixes #3191
2015-05-20 17:10:06 +02:00
Cristian Maglie
977ccc6910
Added missing license on samd's pgmspace.h
...
Fixes #3145
2015-05-19 20:01:50 +02:00
Federico Fissore
42b07f0337
Libraries bundled with cores will take the type of that core, instead of relying on an undocumented 'types' property. Fixes #2875
2015-05-19 12:24:11 +02:00
Federico Fissore
c14d4fa8b4
Merge pull request #3109 from agdl/fix_i2cexamples
...
Fix for #2969 (I2C reserved addresses)
2015-05-14 14:07:43 +02:00
Arturo Guadalupi
5199b0f6d3
Fixes #2969 :
...
This fixes the Wire examples that uses I2C reserved address (from 0 to 7) substituting them with 8 that is the first one available and that can be used.
I also modified the wire reference
http://www.arduino.cc/en/reference/wire
according to this fact.
2015-05-14 11:27:00 +02:00
Nico
d2595129c5
RX and TX Serial buffer sizes can now be defined independently
...
Fixes #2597
2015-05-12 15:09:48 +02:00
Martino Facchin
7f8cba667d
Due watchdog: change flags to effectively reset board
2015-05-08 14:16:12 +02:00
Bob Cousins
d2c510d166
Add Due watchdog functions; modified according to feedback supplied
2015-05-08 14:16:12 +02:00
Bob Cousins
4725d75054
Add watchdog routines for Due.
2015-05-08 14:16:12 +02:00
Arnav Gupta
4d029de000
saveHex: rename recipe.hex -> recipe.output
...
Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
2015-05-07 11:57:12 +02:00
Arnav Gupta
78936541b7
update Sketch menu, add Save hex option
...
* Moving Upload options from "File" menu to "Sketch" menu as those
are sketch actions more than file actions.
Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
2015-05-07 11:57:12 +02:00
Federico Fissore
5a68e3441b
AVR core version bump
2015-05-06 16:24:13 +02:00
Cristian Maglie
79c77ae884
[gemma] Integration of Gemma board
2015-05-06 15:55:56 +02:00
Federico Fissore
90026f3764
Disabling uncertified warning, leaving vids/pids
2015-04-27 10:55:16 +02:00
Federico Fissore
d805fb4e1f
Renamed compiler.warning_flags pref to compiler.warning_level
...
Provided a default value for compiler.warning_flags
Releasing avr core 1.6.5
2015-04-24 09:27:28 +02:00
Federico Fissore
2f31b8a80c
AVR: upgrading avr core version
2015-04-23 11:10:17 +02:00
Cristian Maglie
c944a4c84d
Updated Stream.cpp in SAM core to the latest version
2015-04-21 18:11:05 +02:00
Cristian Maglie
c96c917dd0
Fixed indentation in Stream.cpp, no code change
2015-04-21 18:10:32 +02:00
Cristian Maglie
35fc66c23d
Fixed wrong bracket placement (see #3011 )
2015-04-21 18:07:42 +02:00
Kristian Sloth Lauszus
91489d7ba8
Fixed: warning: comparison between signed and unsigned integer expressions
2015-04-21 00:08:11 +02:00
Kristian Sloth Lauszus
f3e7a3909d
Fixed: warning: suggest explicit braces to avoid ambiguous 'else'
2015-04-21 00:08:02 +02:00
Federico Fissore
38d5e916ca
Merge pull request #2973 from ffissore/warnings
...
Reviewed warnings key names and dropdown in Preferences
2015-04-17 23:55:54 +02:00
Martino Facchin
b41e4a3d7d
Merge branch 'jipp-master'
2015-04-14 10:13:58 +02:00
Martino Facchin
3bbdf495f2
Merge pull request #2961 from jan-r/issue292-fix
...
Tone: fix for ATmega8
2015-04-14 08:36:12 +01:00
Jan
df577bf244
Fix for issue #292
...
Replaced direct register manipulation with calls to bitWrite(). Fixed TIMSK5 usage on Leonardo (as well as some other preprocessor statements).
2015-04-13 20:36:28 +02:00
Federico Fissore
f7fe11c825
Reviewed warnings key names and dropdown in Preferences
2015-04-13 17:18:23 +02:00
jipp
b5cc55ec3e
Update Tone.cpp
...
Tone.cpp stops compile when TCCR0A/TCCR0B defined and WGM01 not defined #2923
2015-04-13 16:18:18 +02:00
Federico Fissore
b42c6667e1
Better preference for setting warnings level. See 61592d78fa (commitcomment-10668365)
2015-04-13 12:22:37 +02:00
Jan
3cde93501c
Update Tone.cpp
...
Rebased the bugfix from the original Google Code issue #292 to work with Arduino 1.6.x
Description of original fix provided by Pete62:
The later 8 bit AVR's use two registers (TCCRxA, TCCRxB) whereas the ATmega8 only uses a single register (TCCR2) to house the control bits for Timer 2. Bits were inadvertently being cleared.
2015-04-11 00:15:58 +02:00
Federico Fissore
ecde17b6e2
Platform.txt in-memory rewrite rules: whenever loaded, if a property is set to a value known to be wrong/old, that property is replaced with the current/right value.
...
This happens in-memory, no platform.txt file were harmed during rewriting
Mitigate #2838
2015-03-30 16:18:08 +02:00