Age | Commit message (Collapse) | Author |
|
If an interrupt causing overflow would occur between reading
_buffer_overflow and clearing it, this overflow condition would be
immediately cleared and never be returned by overflow().
By only clearing the overflow flag if an overflow actually occurred,
this problem goes away (worst case overflow() returns false even though
an overflow _just_ occurred, but then the next call to overflow() will
return true).
|
|
This prevents interrupts from triggering when the SoftwareSerial
instance is not even listening.
Additionally, this removes the need to disable interrupts in
SoftwareSerial::listen, since no interrupts are active while it touches
the variables.
|
|
This allows one to explicitly stop a SoftwareSerial instance from
listening, without having to make another one listening.
|
|
This moves the interrupt mask enabling / disabling code into a separate
method, so we can call it from multiple spots next.
|
|
The current check is still always false when the old check was, but
additionally it will not disable the interrupts when they were never
enabled (which shouldn't matter much, but this is more consistent).
|
|
In this case, SoftwareSerial::begin will not have enabled the
interrupts, so better not allow the SoftwareSerial instance to enter the
listening state either.
|
|
Before enabling interupts, begin would see if the given receive pin
actually has an associated PCINT register. If not, the interrupts would
not be enabled.
Now, the same check is done, but when no register is available, the rx
parameters are not loaded at all (which in turn prevents the interrupt
from being enabled). This allows all code to use the same "is rx
enabled" (which will be added next).
|
|
(Andrew Kroll)
Previously, it could happen that SPI::beginTransaction was
interrupted by an ISR, while it is changing the SPI_AVR_EIMSK
register or interruptSave variable (it seems that there is
a small window after changing SPI_AVR_EIMSK where an interrupt
might still occur). If this happens, interruptSave is overwritten
with an invalid value, permanently disabling the pin interrupts.
To prevent this, disable interrupts globally while changing
these values.
|
|
|
|
|
|
|
|
From https://github.com/arduino/Arduino/pull/2376#issuecomment-59671152
Quoting Andrew Kroll:
[..this commit..] introduces a small delay that can prevent the wait
loop form iterating when running at the maximum speed. This gives
you a little more speed, even if it seems counter-intuitive. At
lower speeds, it is unnoticed. Watch the output on an oscilloscope
when running full SPI speed, and you should see closer back-to-back
writes.
Quoting Paul Stoffregen:
I did quite a bit of experimenting with the NOP addition. The one
that's in my copy gives about a 10% speedup on AVR.
|
|
|
|
|
|
|
|
|
|
|
|
Enable user to change the I2C clock frequency by calling setClock in the Wire library
|
|
Conflicts:
build/shared/examples/01.Basics/Blink/Blink.ino
build/shared/examples/09.USB/Keyboard/KeyboardReprogram/KeyboardReprogram.ino
build/shared/examples/10.StarterKit/p02_SpaceshipInterface/p02_SpaceshipInterface.ino
hardware/arduino/cores/arduino/HardwareSerial.cpp
|
|
Wire library
|
|
|
|
This reverts commits:
3223d4fdca32ec03de4a3a2a0c22f2d40de5f374
77f8dd63ab102ab5d2929ac4edd5c00ae9d70493
|
|
This reverts commit 38c3bbbd3c83eda057d4857635fbd78a4785c3a4.
|
|
This reverts commit a31857688bdc270ed65307755ff3b73ef4867982.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
app/src/processing/app/Preferences.java
app/src/processing/app/debug/Uploader.java
|
|
|
|
|
|
may consume linux cpu power
|
|
|
|
|
|
|
|
Conflicts:
app/src/cc/arduino/packages/uploaders/SerialUploader.java
app/src/processing/app/Editor.java
app/src/processing/app/Sketch.java
app/src/processing/app/debug/Uploader.java
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|