Commit Graph

1869 Commits

Author SHA1 Message Date
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 fbcf94801b8bba7f1c8c79cc7ae402b6b9dbb2d3
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