DrZiplok
47bb4d22c6
Use the presence of UDRx as an indication that the serial port x might need to be supported.
...
14 years ago
rmackay9@yahoo.com
a257c51a09
Some changes to fix compile errors when using ATmega2560.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1187 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
363d9156d1
Change the way that we do board-to-board portability to avoid knowing about specific AVR devices; use the availability of registers/vectors instead. This lets us reduce the overall macro evil as well.
...
Drop some unused, old vector code.
Strip the UDR pointer from the class instance, since it's never used.
Fix up the comment describing RAM savings.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1145 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
0fd1228e27
Add ::peek for compatibility with trunk Arduino.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@943 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
70baf31139
Resurrect lf -> crlf translation that was lost when I dropped the stdio support.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@921 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
aa2bbe9131
A better workaround for the PSTR warning bug. This seems to work correctly.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@919 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
2dfb44907f
Add a test case for printf_P
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@918 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok
c473af0082
Back out the "workaround" for PSTR() warnings; it doesn't.
...
14 years ago
DrZiplok@gmail.com
f30bf9cab7
Add format attributes to printf and printf_P. The latter is a bit wishful as gcc isn't smart enough to deal with what PSTR does, but with some other hackery this can be used to generate useful warnings.
...
Add a workaround for a GCC bug that generates spurious warnings when PSTR() is used.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@901 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
43262a573f
Bring in floating point support for BetterStream::printf, courtesy of the avr-libc implementation.
...
Strip the stdio integration from FastSerial as we aren't using it and it just wastes space.
Note that this does not attempt to fix the bogus floating point handling in ::print(ln). That's an issue for another day.
BetterStream::printf(_P) aka FastSerial::printf(_P) support is now as documented for avr-libc printf with floating point support enabled.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@895 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
c833182dbe
Duplicate include protection for BetterStream.h
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@761 f9c3cf11-9bcb-44bc-f272-b75c42450872
14 years ago
DrZiplok@gmail.com
271d4736a8
Factor the Stream-related enhancements out from FastSerial proper, so that we could use them on other Stream subclasses if that seemed worthwhile.
...
Add print_P and println_P implementations to give folks wedded to the vanilla Stream methods a way to print PROGMEM strings.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@715 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok
84697f4111
Fix ::printf_P to transmit to the correct interface. Fixes the XBee test.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@685 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
ca6d51cddb
If ::begin() is called on a port that is already open, preserve the previous buffer settings. This makes it easy to change serial speeds without having to know how the port buffers were set up originally.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@672 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
5ba0c7328f
Hook up stdio input, for the heck of it. We seem to be moving away from it, but there are things it can do that are hard to do with the Stream interfaces.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@555 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
d45f67b3ef
Add a carriage return before printing a newline when we are called as stdout/stderr.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@547 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
f72129bdb3
Clean up the bitrate calculations per the Atmel datasheet.
...
Verified that when configured for 115200, the actual output as seen on a scope is around 117600Hz consistent with the +2.1% error in the datasheet.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@542 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
9db013e648
Stop trying to be so clever in the tx interrupt handler. We may race with the code stuffing bytes into the ring such that we consume the last byte and empty the ring before they set the UDRE interrupt.
...
If that happens since we weren't checking the ring for emptiness we would loop and spit out the whole ring again. It's cheaper in terms of interrupt latency to just check the ring at interrupt time than it is to futz with ATOMIC_BLOCKs in the ::write code.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@535 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
6d31545b8d
Per Jose, fix the interrupt vectors to work for non-1280-based Arduino.
...
15 years ago
DrZiplok@gmail.com
11865c1718
Remove the method call from the interrupt handlers. This brings the rx and tx interrupt paths down to < 60 instructions worst case, or ~4us.
...
At 115200 we expect ~100us between interrupts, or around 5% CPU overhead. 4us latency is probably acceptable for servo signal jitter too if we decide to consider using the Arduino Servo library.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@513 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
analoguedevices
63ae72648e
Commented out AP_Common, which is not implemented yet.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@443 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
6268189d31
Dynamically allocate serial buffers at ::begin time. Allow buffer sizes to be dynamically set.
...
15 years ago
DrZiplok@gmail.com
6b6637bd06
Omit the ::write method, as Print already implements it.
...
15 years ago
DrZiplok@gmail.com
009ef940c6
Update to take advantage of the new Stream class in Arduino 0019.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@387 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
e0be94a03f
Change the way the port declaration macros work. This saves ~300
...
15 years ago
DrZiplok@gmail.com
22c9ed317e
Change the way that FastSerial ports are created, so that we can avoid
...
15 years ago
DrZiplok@gmail.com
b4a840a336
Add 'extern' definitions to legitimise clients that want to assume that Serial* always exists.
...
git-svn-id: https://arducopter.googlecode.com/svn/trunk@321 f9c3cf11-9bcb-44bc-f272-b75c42450872
15 years ago
DrZiplok@gmail.com
6074c410d9
"Fast" serial driver that fully overrides the Arduino-provided HardwareSerial/Serial* driver.
...
15 years ago