Commit Graph

4129 Commits

Author SHA1 Message Date
Collin Kidder bb341c6d92 Modifications to make serial transmit interrupt work more reliably. Also, added the availableForWrite function. 2014-12-23 22:37:58 -05:00
Collin Kidder 4eb05c303b Change RingBuffer to have buffer size of 128 and also set its members volatile since they are all accessed and modified in interrupt handlers. 2014-12-23 22:36:35 -05:00
Cristian Maglie ab92e42259 Merge branch 'master' into ide-1.5.x
Conflicts:
	app/src/processing/app/Serial.java
	app/src/processing/app/SerialMonitor.java
2014-12-23 16:41:38 +01:00
Cristian Maglie 8e0a311e87 SerialMonitor: limit buffering without autoscroll
When the "autoscroll" checkbox is deselected the buffer may continue
to grow up to twice of the maximum size.

This is a compromise to ensure a better user experience and, at the
same time, reduce the chance to lose data and get "holes" in the
serial stream.

See #2491
2014-12-23 14:11:45 +01:00
Cristian Maglie 63f5d26ae9 Improved Serial input processing.
Before this patch every byte received from Serial
invokes a String allocation, not really efficient.

Moreover a InputStreamReader is chained on the serial
InputStream to correctly convert bytes into UTF-8
characters.
2014-12-23 12:58:41 +01:00
Collin Kidder 065459c18f Implement transmit buffering with interrupts for USART devices 2014-12-21 20:57:08 -05:00
Cristian Maglie 391d3380ee Removed leftover debug print 2014-12-10 11:01:45 +01:00
Cristian Maglie 35848e09a8 Mitigated Serial Monitor resource exhaustion when the connected device sends a lot of data
Fixes #2233
2014-12-10 10:37:43 +01:00
Federico Fissore 588f9f1118 Ignoring GNOME .directory files 2014-12-09 10:51:39 +01:00
Federico Fissore 2f08fe4ecf 38400 baud rate had issues with RXTX and linux. With JSSC, it seems to be working fine again. Fixes #2296 2014-12-04 13:10:01 +01:00
Cristian Maglie 6c4f7dc293 Merge branch 'master' into ide-1.5.x
Conflicts:
	hardware/arduino/cores/arduino/wiring.c
	libraries/Ethernet/src/utility/util.h
	libraries/Ethernet/src/utility/w5100.cpp
	libraries/Ethernet/src/utility/w5100.h
	libraries/Ethernet/util.h
	libraries/Ethernet/utility/util.h
	libraries/SPI/SPI.cpp
	libraries/SPI/SPI.h
2014-12-02 22:35:17 +01:00
Cristian Maglie 1be99c3a1d Merge pull request #2365 from cmaglie/ide-1.0.x-spi-transaction
[IDE 1.0.x (backport from 1.5.x)] SPI Transactions
2014-12-02 22:24:51 +01:00
Cristian Maglie ae402c2907 Update revision log 2014-12-02 22:20:40 +01:00
PaulStoffregen 20ca43646a Fix SPI transaction mismatch errors 2014-12-02 22:18:43 +01:00
Cristian Maglie 37115d03ef Backported SD library from 1.5.x 2014-12-02 22:15:57 +01:00
Cristian Maglie b9b0fcdadc Backported Ethernet library from 1.5.x 2014-12-02 22:15:57 +01:00
Cristian Maglie 6ecb174c40 Backported 'yield()' hook from 1.5.x 2014-12-02 22:15:57 +01:00
Cristian Maglie 042fa0c3f2 Backported SPI Transcations from 1.5.x 2014-12-02 22:14:59 +01:00
Cristian Maglie a9735bf91f Fix atomicity issues in SPI::beginTransaction and SPI::endTransaction (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.
2014-11-25 15:56:11 +01:00
Cristian Maglie 84b6cc27a5 [avr] Made SPI.usingInterrupt() synchronized (Andrew Kroll) 2014-11-25 15:56:11 +01:00
Cristian Maglie d9537cb7da [avr] Added SPI.notUsingInterrupt() (Andrew Kroll) 2014-11-25 15:56:11 +01:00
Cristian Maglie 8344812ce8 [avr] Made SPI.begin() and SPI.end() synchronized (Andrew Kroll) 2014-11-25 15:49:17 +01:00
Cristian Maglie 53e25d8b55 [avr] Improved SPI speed on 16bit transfer.
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.
2014-11-25 15:49:17 +01:00
Cristian Maglie 6eef453944 Fixed EditorConsole new-line regression.
Now EditorConsole starts a newline also when a CR character is read
from command output.
2014-11-25 15:37:55 +01:00
Cristian Maglie 15f3d1f8e7 Fixed import style in EditorConsole.java 2014-11-25 15:37:54 +01:00
Cristian Maglie 81a562e0ed Updated eclipse project library path 2014-11-25 15:37:54 +01:00
Federico Fissore ca1a355628 Network discovery: not showing board name is not resolvable (was printing "null") 2014-11-25 13:51:47 +01:00
Federico Fissore 5bbdc6dd26 windows: missing jar in config.xml 2014-11-25 11:46:14 +01:00
Arturo Guadalupi 060c1e766c Updated description
It reads the state of a potentiometer (an analog input) and turns on an LED
 only if the LED goes above a certain threshold level. It prints the analog value
 regardless of the level.

updated to

 It reads the state of a potentiometer (an analog input) and turns on an LED
 only if the potentiometer goes above a certain threshold level. It prints the analog value
 regardless of the level.
2014-11-24 09:37:20 +01:00
Cristian Maglie 7b45b18ae8 Merge branch 'ide-1.5.x-libastyle-2.05' of github.com:ffissore/Arduino into ide-1.5.x 2014-11-21 11:45:46 +01:00
Federico Fissore 0aa800b4d7 Upgrading libastyle to 2.05 2014-11-21 11:07:30 +01:00
PaulStoffregen c0bc2d22f6 Fix SPI transaction mismatch errors 2014-11-20 18:54:04 -08:00
Cristian Maglie 257238c050 IDE: better error handling for upload/burn bootloader
RunnerException was displayed with an ugly stacktrace, while the
message contained in the exception itself is already quite enough
detailed and clear.
2014-11-20 14:00:43 +01:00
Cristian Maglie 85aecfe0da IDE: Fixed default board selection. 2014-11-20 13:50:11 +01:00
Cristian Maglie b9e186e45a Upped version to 1.6.0 2014-11-18 14:48:01 +01:00
Cristian Maglie b0bd52b387 Removed duplicate version fields in Base class 2014-11-18 14:04:14 +01:00
Cristian Maglie 13fd27704f Added unit-test jars into eclipse project class path 2014-11-18 12:31:17 +01:00
Cristian Maglie 6aff4f4077 Merge branch 'ide-1.5.x-gui-refactor' into ide-1.5.x 2014-11-18 12:22:43 +01:00
Cristian Maglie 34c40b224f [avr] SPI: removed redundant include 2014-11-14 00:23:11 +01:00
Cristian Maglie 993cc9bbb4 [avr] Small comments and headers fixes in SPI 2014-11-14 00:23:11 +01:00
Cristian Maglie 7b2ed12ad7 Temporarily disabled I18N test 2014-11-13 16:34:25 +01:00
Claudio Indellicati 820fc657e6 Created 'arduino-builder' project. 2014-11-13 16:34:25 +01:00
Claudio Indellicati 98bdc7b587 Moved specialized Platform classes and related resources to the 'arduino-core' project. 2014-11-13 16:34:25 +01:00
Cristian Maglie d1f4e0370d arduino-core project is now correctly compiled through ant build script 2014-11-13 16:34:24 +01:00
Cristian Maglie ba8eadeeb5 Split IDE into 2 projects.
BEWARE: HIGHLY EXPERIMENTAL BRANCH
2014-11-13 16:34:24 +01:00
Claudio Indellicati 2de206cccd Modified preferences initialization in BaseNoGui. 2014-11-13 16:23:46 +01:00
Claudio Indellicati 1974d77abe Added new command line options.
--buildpath
--nouploadport
--useprogrammer
2014-11-13 16:23:46 +01:00
Claudio Indellicati b2a88ecdd2 Removed inheritance relationship between SketchCodeDocument and SketchCode. 2014-11-13 16:23:46 +01:00
Claudio Indellicati c2223107b1 Fixed wrong sketch structure check. 2014-11-13 16:23:46 +01:00
Claudio Indellicati 2702ccef0c Added main() and init() methods to BaseNoGui.
Now the the GUI and the rest of the code should be completely separated.
2014-11-13 16:23:46 +01:00