I don't know if this was any better of a test, if so, the quickest for each test are bolded.
jm_txserial won 2 of the tests (seems to be faster with small values or numbers followed by carriage returns)
FastFullDuplexSerial won 2 of the tests (seems to be faster with long strings)
Now, how to correlate this to bps?
Test bits sent :
"string " + (previous cnt - current cnt) + carriage return
Fast Full Duplex Serial (by PJV) - 126176 clk cycles between loops
Full Duplex Serial - 126176 clk cycles between loops
Parallax Serial Terminal - 126176 clk cycles between loops
jm_txserial - 115872 clk cycles between loops
Test bits sent :
"string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd " + "string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd " + (previous cnt - current cnt) + carriage return
Fast Full Duplex Serial (by PJV) 832784 - clk cycles between loops
Full Duplex Serial - 1175120 clk cycles between loops
Parallax Serial Terminal - 1173520 clk cycles between loops
jm_txserial - 1165520 clk cycles between loops
Test bits sent :
"Value 1: " + "1" + "Value 2: " + "2" + "Value 3: " + "3" + "Value 4: " + "4" + "Value 5: " + "5" + "Value 6: " + "6" + "Value 7: " + "7" + (previous cnt - current cnt) + carriage return
Fast Full Duplex Serial (by PJV) - 751504 clk cycles between loops
Full Duplex Serial - 751504 clk cycles between loops
Parallax Serial Terminal - 751504 clk cycles between loops
jm_txserial - 697088 clk cycles between loops
Test bits sent :
adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfa
sfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfa
sdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas df
asfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasf
asdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfad
fasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfa
dfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadf
adfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfad
fadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfas
dfadfadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfas
dfasdfadfadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfa
dfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfa
sdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfa
dsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasf d adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfa
dsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasd fasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfa
sdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfas fasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd
adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfa
sfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfa
sdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas df
asfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasf
asdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfad
fasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfa
dfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadf
adfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfad
fadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfasdfas
dfadfadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd adfasdfadsfadsfasdfadfas
dfasdfadfadfadfadfadfasfasdfasfasdfasfd adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfas dfasfasdfasfd+ (previous cnt - current cnt) + carriage return
Fast Full Duplex Serial (by PJV) - 17520096 clk cycles between loops
Full Duplex Serial - 26043840 clk cycles between loops
Parallax Serial Terminal - 25679456 clk cycles between loops
jm_txserial - 25830368 clk cycles between loops
Code:
CON
_CLKMODE = XTAL1 + PLL16X
_CLKFREQ = 80_000_000
VAR
long testPstStack[200]
long testFastPstStack[200]
long testFastFdsStack[200]
long testJmHdsStack[200]
OBJ
fastFds : "FastFullDuplexSerial"
fds : "FullDuplexSerial"
pst : "Parallax Serial Terminal"
jmHds : "jm_txserial"
PUB Main
'fastFds.start(31,30,0,921600)
'cognew(testFastFds, @testFastPstStack)
'fds.start(31,30,0,115200)
'cognew(testFds, @testFastFdsStack)
'pst.start(115200)
'cognew(testPst, @testPstStack)
'jmHds.start(30,115200)
'cognew(testJmHds, @testJmHdsStack)
PUB testFastFds | prevCnt, currCnt
repeat
prevCnt := currCnt
currCnt := cnt
fastFds.str(string("Value 1: "))
fastFds.dec(1)
fastFds.tx(13)
fastFds.str(string("Value 2: "))
fastFds.dec(2)
fastFds.tx(13)
fastFds.str(string("Value 3: "))
fastFds.dec(3)
fastFds.tx(13)
fastFds.str(string("Value 4: "))
fastFds.dec(4)
fastFds.tx(13)
fastFds.str(string("Value 5: "))
fastFds.dec(5)
fastFds.tx(13)
fastFds.str(string("Value 6: "))
fastFds.dec(6)
fastFds.tx(13)
fastFds.str(string("Value 7: "))
fastFds.dec(7)
fastFds.tx(13)
fastFds.dec(currCnt - prevCnt)
fastFds.tx(13)
{
string 126176
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
832784
Value 1: 1
Value 2: 2
Value 3: 3
Value 4: 4
Value 5: 5
Value 6: 6
Value 7: 7
751504
}
PUB testFds | prevCnt, currCnt
repeat
prevCnt := currCnt
currCnt := cnt
fds.str(string("Value 1: "))
fds.dec(1)
fds.tx(13)
fds.str(string("Value 2: "))
fds.dec(2)
fds.tx(13)
fds.str(string("Value 3: "))
fds.dec(3)
fds.tx(13)
fds.str(string("Value 4: "))
fds.dec(4)
fds.tx(13)
fds.str(string("Value 5: "))
fds.dec(5)
fds.tx(13)
fds.str(string("Value 6: "))
fds.dec(6)
fds.tx(13)
fds.str(string("Value 7: "))
fds.dec(7)
fds.tx(13)
fds.dec(currCnt - prevCnt)
fds.tx(13)
{
string 126176
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
1175120
Value 1: 1
Value 2: 2
Value 3: 3
Value 4: 4
Value 5: 5
Value 6: 6
Value 7: 7
751504
}
PUB testPst | prevCnt, currCnt
repeat
prevCnt := currCnt
currCnt := cnt
pst.str(string("Value 1: "))
pst.dec(1)
pst.char(13)
pst.str(string("Value 2: "))
pst.dec(2)
pst.char(13)
pst.str(string("Value 3: "))
pst.dec(3)
pst.char(13)
pst.str(string("Value 4: "))
pst.dec(4)
pst.char(13)
pst.str(string("Value 5: "))
pst.dec(5)
pst.char(13)
pst.str(string("Value 6: "))
pst.dec(6)
pst.char(13)
pst.str(string("Value 7: "))
pst.dec(7)
pst.char(13)
pst.dec(currCnt - prevCnt)
pst.char(13)
{
string 126176
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
1173520
Value 1: 1
Value 2: 2
Value 3: 3
Value 4: 4
Value 5: 5
Value 6: 6
Value 7: 7
751504
}
PUB testJmHds | prevCnt, currCnt
repeat
prevCnt := currCnt
currCnt := cnt
jmHds.str(string("Value 1: "))
jmHds.dec(1)
jmHds.tx(13)
jmHds.str(string("Value 2: "))
jmHds.dec(2)
jmHds.tx(13)
jmHds.str(string("Value 3: "))
jmHds.dec(3)
jmHds.tx(13)
jmHds.str(string("Value 4: "))
jmHds.dec(4)
jmHds.tx(13)
jmHds.str(string("Value 5: "))
jmHds.dec(5)
jmHds.str(string("Value 6: "))
jmHds.dec(6)
jmHds.tx(13)
jmHds.str(string("Value 7: "))
jmHds.dec(7)
jmHds.tx(13)
jmHds.tx(13)
jmHds.dec(currCnt - prevCnt)
jmHds.tx(13)
{
string 115872
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
string adfasdfadsfadsfasdfadfasdfasdfadfadfadfadfadfasfasdfasfasdfasfd
1165520
697088
Value 1: 1
Value 2: 2
Value 3: 3
Value 4: 4
Value 5: 5
Value 6: 6
Value 7: 7
}
Bookmarks