Bill Greiman
Well-known member
I am adding software SPI support for SD cards in a new FAT12/FAT16/FAT32 library.
In tests, my Teensy 3.0 version is slowest. Due and AVR Arduinos are faster.
I have not tested Teensy 3.1 since I don't have a 3.1 board.
With standard digitalRead/digitalWrite on Teensy 3.0 I get this:
I tried digitalReadFast/digitalWriteFast on Teensy 3.0 and get this:
Is there a faster digital read/write for Teensy 3.0?
With Due I get this:
I use these functions on Due:
Even Uno is faster with my custom fast digital I/O functions:
Note, native SPI is fast on Teensy 3.0:
In tests, my Teensy 3.0 version is slowest. Due and AVR Arduinos are faster.
I have not tested Teensy 3.1 since I don't have a 3.1 board.
With standard digitalRead/digitalWrite on Teensy 3.0 I get this:
Buffer size 8192 bytes
Write 58.97 KB/sec
Read 54.91 KB/sec
I tried digitalReadFast/digitalWriteFast on Teensy 3.0 and get this:
Buffer size 8192 bytes
Write 76.97 KB/sec
Read 75.72 KB/sec
Is there a faster digital read/write for Teensy 3.0?
With Due I get this:
Buffer size 8192 bytes
Write 275.08 KB/sec
Read 415.28 KB/sec
I use these functions on Due:
Code:
inline void digitalWriteDirect(int pin, boolean val){
if(val) g_APinDescription[pin].pPort -> PIO_SODR = g_APinDescription[pin].ulPin;
else g_APinDescription[pin].pPort -> PIO_CODR = g_APinDescription[pin].ulPin;
}
inline int digitalReadDirect(int pin){
return !!(g_APinDescription[pin].pPort -> PIO_PDSR & g_APinDescription[pin].ulPin);
}
Even Uno is faster with my custom fast digital I/O functions:
Buffer size 512 bytes
Write 118.48 KB/sec
Read 155.33 KB/sec
Note, native SPI is fast on Teensy 3.0:
Buffer size 8192 bytes
Write 2200.41 KB/sec
Read 2450.77 KB/sec
Last edited: