NicoHood
9cd24d7a0d
Removed not needed public statement for root node
2015-10-03 07:56:48 +02:00
Martino Facchin
8cab209ef9
[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
2e328bae3b
[HID] Code cleanup (no semantic changes)
2015-10-02 11:59:23 +02:00
Cristian Maglie
bad9b58ce3
[PUSB] Fixed checks on return values
2015-10-02 11:59:23 +02:00
Cristian Maglie
10512b3f9b
[USB] Fixed some compiler warnings
2015-10-02 11:59:23 +02:00
Cristian Maglie
cabae13e55
[PUSB] Fixed the correct number of endpoints
2015-10-02 11:59:23 +02:00
Cristian Maglie
e42d7d6221
[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
c0f9296ae5
[PUSB] No more static fields in PluggableUSB class
2015-10-02 11:59:23 +02:00
Cristian Maglie
27c1832aca
[PUSB] The latest fields are now set via constructor
2015-10-02 11:59:23 +02:00
Cristian Maglie
9065229595
[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
7fee0f0a75
[PUSB] replaced u8 with uint8_t
2015-10-02 11:59:22 +02:00
Cristian Maglie
34a75d9416
[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
c07f988609
[PUSB] Global functions PUSB_* are now methods of PluggableUSB class
2015-10-02 11:59:22 +02:00
Cristian Maglie
7302965552
[PUSB] PUSBCallback struct has been merged into PUSBListNode
...
This slightly simplifies PluggableUSB API.
2015-10-02 11:59:22 +02:00
Nico
d2a52bc2ac
Removed not used PUSB_Begin()
2015-09-29 17:02:07 +02:00
Cristian Maglie
1bfae1d7d5
[HID] Removed unused PUSBReturn structure
2015-09-28 17:05:35 +02:00
Nico
b53611a0d1
Removed not needed Timer warning
...
Timer is declared above, so nothing is missing here.
2015-09-28 16:30:40 +02:00
Nico
5ab6edb114
Removed Timer warnings when Timer 2 is not present
2015-09-28 16:30:40 +02:00
Nico
a7edf4d66f
Remove Compiler Warning in Tone.cpp
2015-09-28 16:30:39 +02:00
Nico
1be98bd7d5
Fix compiler warning in CDC.cpp
2015-09-28 16:30:39 +02:00
Nico
948c73c5e3
Fix compiler warnings in USBCore.cpp
2015-09-28 16:30:39 +02:00
Martino Facchin
d3f399fad5
Merge pull request #3864 from facchinm/pulseInLongOVF
...
fix pulseInLong considering overflow
2015-09-25 16:05:35 +02:00
Cristian Maglie
aba020da75
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
Cristian Maglie
987b9bf2a8
Merge branch 'patch-7' of https://github.com/NicoHood/Arduino
2015-09-21 12:03:26 +02:00
Martino Facchin
e5685758e3
fix pulseInLong considering overflow
...
fixes #3830
2015-09-21 11:59:20 +02:00
Martino Facchin
dc04933aa9
pulseInLong: fix incorrect timeout handling
2015-09-21 10:24:48 +02:00
Nico
7f2ca6ee28
Fix CDC Serial buffer size determination
2015-09-20 11:08:49 +02:00
Nico
edcfdba42d
Fix HW Serial buffer size determination
2015-09-20 11:07:19 +02:00
Cristian Maglie
e42c3ccbdb
Merge branch 'ethernet-dns-fix' of https://github.com/cmaglie/Arduino
2015-09-18 11:30:45 +02:00
Cristian Maglie
4d234a550c
Fixed wrong condition in turnOffPWM(..)
...
Fix #2163
2015-09-18 11:01:08 +02:00
Cristian Maglie
5a46ff0b10
Added IPAddress::fromString(....) function
2015-09-09 12:03:29 +02:00
Cristian Maglie
f3bacff7ee
...and also a leading ','... (oops 2)
...
See #2408
2015-09-01 10:58:48 +02:00
Cristian Maglie
82f9359027
Added missing #ifdef in WInterrupts.c... (oops)
...
See #2408
2015-09-01 10:11:43 +02:00
Cristian Maglie
a3d66a7dd0
Added EXTERNAL_NUM_INTERRUPTS for AVR xxU2 series
2015-08-31 18:12:13 +02:00
Andrew J. Kroll
36f11ebcc6
AVR: Faster Interrupts, no size change.
...
Fixes #2408
2015-08-31 13:55:07 +02:00
onovy
c25e80e27c
Tone: Added missing break
2015-08-15 21:11:52 +02:00
Cristian Maglie
621580d83b
Merge branch 'cdc-settings' of https://github.com/matthijskooijman/Arduino
2015-08-14 13:37:00 +02:00
Martino Facchin
b3197c6ef8
Merge pull request #3640 from NicoHood/USB-Core-Fixes
...
Usb core fixes
2015-08-13 09:39:21 +02:00
NicoHood
98301ba23a
Added u2 Series support
2015-08-12 17:48:17 +02:00
NicoHood
39ed7be747
Precised USB Endpoint definitions
2015-08-12 17:48:17 +02:00
NicoHood
d1fe40060e
Added 16 byte endpoint support
2015-08-12 17:48:17 +02:00
NicoHood
77cc20f119
Added missing static inline to USB Recv function
2015-08-12 17:48:17 +02:00
NicoHood
deb59fd605
Made Magic Key Settings more flexible
2015-08-12 17:48:09 +02:00
Chuck Todd
98f7ab1588
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
Peter Van Hoyweghen
3baff3b411
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
303ebdb0cc
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
31e0c94124
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
acb1a47a78
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
b0bdb47694
fix pluggableUSB linked list
2015-07-16 13:13:52 +02:00
Martino Facchin
862febf3e2
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
3cf30dff25
rename Setup typedef struct to USBSetup
...
was really too common
2015-07-16 13:13:52 +02:00
Martino Facchin
3d0331b8f6
fix HID headers
2015-07-16 13:13:51 +02:00
Martino Facchin
30ebf7f924
fix HID descriptors bigger than 127 bytes
2015-07-16 13:13:51 +02:00
Martino Facchin
3ee0fa1265
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
adb351882c
remove setupUSB weak hook and replace with global constructors
...
thanks @matthijskooijman
2015-07-16 13:13:49 +02:00
Martino Facchin
d269ed2854
rework PUSBCallbacks initialization
2015-07-16 13:13:39 +02:00
Martino Facchin
3e516e93c4
remove 3 endpoints to match at32u4 limit
2015-07-16 13:12:15 +02:00
Martino Facchin
8fbc30bd8a
add numInterfaces field to PUSBCallbacks
2015-07-16 13:12:15 +02:00
Martino Facchin
b38d7f07f0
implement PUSB modules as linked list
2015-07-16 13:12:14 +02:00
Martino Facchin
353ef39c23
remove useless variables
2015-07-16 13:12:14 +02:00
Martino Facchin
a1ba49e7c8
make CDC function non removable
2015-07-16 13:12:14 +02:00
Martino Facchin
afd126f96a
add weak setupUSB() hook
...
override this function to insert additional USB endpoints
2015-07-16 13:12:14 +02:00
Martino Facchin
15edf1c6c8
remove useless variable
2015-07-16 13:12:14 +02:00
Martino Facchin
d3815e7e36
add PluggableUSB module
2015-07-16 13:12:14 +02:00
Martino Facchin
8518b4a545
move _initEndpoints from PROGMEM to RAM
2015-07-16 13:12:14 +02:00
Martino Facchin
f71f63a644
Use generic composite device descriptor
2015-07-16 13:12:13 +02:00
Martino Facchin
f1973e73cb
Move EP defines to header
2015-07-16 13:12:13 +02:00
Martino Facchin
ea2a421570
Remove HID core library
2015-07-16 13:12:13 +02:00
Matthijs Kooijman
72a5ef3c78
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
Federico Fissore
37c29845f6
Removed a handful of SVN expansion keywords. See #277
2015-07-03 10:38:07 +02:00
Matthijs Kooijman
695d48cc79
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
Martino Facchin
17b840d27f
Add a Stream::find(char) method
2015-06-01 14:06:32 +00:00
Cristian Maglie
6c763b7df3
Fixed unused argument warning
2015-05-30 15:19:44 +02:00
Cristian Maglie
64dd45c3ce
Fixed unused variables warnings and indentation
2015-05-29 20:02:50 +02:00
chromhelm
b7855ab7e1
Saving some bytes in HardwareSerial::write
2015-05-29 18:12:24 +02:00
Martino Facchin
ef4eb0cf6a
pulseIn: be consistent with standard API
...
return 0 if timeout has been reached
2015-05-29 15:01:38 +02:00
Martino Facchin
9e7c7c4ddc
pulseInASM: rework comment style
2015-05-29 15:01:38 +02:00
Martino Facchin
8dfa9dfb9e
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
6940c1d644
pulseIn: modify function to use ASM implementation
2015-05-29 15:01:37 +02:00
Martino Facchin
2bac15c63d
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
1a63b36583
Revert "Temporary fix for pulseIn() regression."
...
This reverts commit 8ddc5198f6ef8b2816a61b7b0fcce99f927d11a0.
To be substituted by ASM generated code
2015-05-29 15:01:37 +02:00
Martino Facchin
550f8b61ac
Merge pull request #3202 from Chris--A/randomSeed
...
Modified randomSeed, now uses unsigned long.
2015-05-28 10:54:26 +02:00
Martino Facchin
b8787565db
Merge pull request #3211 from Chris--A/println-optimize
...
Println optimize
2015-05-28 10:24:12 +02:00
Cristian Maglie
39c65393b8
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
cd7eae098c
Merge pull request #3207 from chromhelm/master
...
Fixed bug with HWSerial flushing
2015-05-28 09:44:46 +02:00
Kristian Sloth Lauszus
53d77c30ce
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
1bc9ee33f8
Add missing case to detachinterrupt
2015-05-24 20:35:23 -04:00
Cristian Maglie
335d7b37ef
Indent fix.
2015-05-22 17:23:46 +02:00
Cano
04d34da55f
zero delay fix, ADC prescaler fix
2015-05-22 17:23:46 +02:00
Cano
d3ba34d3a1
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
7562af1752
Optimize printLn calls.
2015-05-22 23:00:07 +10:00
chromhelm
3e7e138484
Fixed bug with flushing
2015-05-21 21:42:40 +02:00
Chris--A
9dc724b9d9
Modified randomSeed, now uses unsigned long.
2015-05-21 16:52:42 +10:00
Nico
2e90af7ab6
RX and TX Serial buffer sizes can now be defined independently
...
Fixes #2597
2015-05-12 15:09:48 +02:00
Cristian Maglie
ad7ede5647
Fixed indentation in Stream.cpp, no code change
2015-04-21 18:10:32 +02:00
Cristian Maglie
9e2fdcc8f4
Fixed wrong bracket placement (see #3011 )
2015-04-21 18:07:42 +02:00
Kristian Sloth Lauszus
82eb5692c6
Fixed: warning: comparison between signed and unsigned integer expressions
2015-04-21 00:08:11 +02:00
Kristian Sloth Lauszus
2398ef5260
Fixed: warning: suggest explicit braces to avoid ambiguous 'else'
2015-04-21 00:08:02 +02:00
Martino Facchin
6cbf4db4b6
Merge branch 'jipp-master'
2015-04-14 10:13:58 +02:00
Jan
d27eb7e1c1
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