0 0 4700 40E8 0 0 4720 40E8 0 0 4740 40E8 0 0 4760 40E8 0 0 4780 40E8 0 0 47A0 40E8 0 0 47C0 40E8 0 0 47E0 40E8 0 0 4800 40E8 0 0 4820 40E8 0 0 4840 40E8 0 0 4860 40E8
F&F (OT=0)micros() _time==74
PacketID: 55
Length: 48
0 0 4880 40E8 0 0 48A0 40E8
14764.00, #, #, #, #, #, #, #, #, #, #, #,339826,0
I have been using 0.1.5...... thanks for merging. Figured this way we have the same sketches. Hey, I am happy finally got it running for more that 15 minutes
What config are you using again for the T3.6/T3.1 combo?
My T_3.1 at 96 MHz is running seemingly fine [ F&F @500 Hz and 10 Hz Toggle] against the T_3.6 pushing 30 MHz SPI - for long times - ran 24+ hours and still running since the earlier noted reset. Maybe this is running on the hairy edge - and why it only works setting PRI to Max/0 - and goes bad when USB consumes any bandwidth?
memmove(buffer,_cbuf,_count*sizeof(T));
Circular_Buffer<uint64_t, 16> cb3;
YES you are.im squeezing performance out of it no!?
You really are feeling your oats.16 slot circular array of U64's
Yeah, I know - just trying to see if it works firsteww AT, that needs a reflash buddy
#include "circular_buffer.h"
Circular_Buffer<uint16_t, 2048> cb;
Circular_Buffer<uint16_t, 16> cb2;
Circular_Buffer<uint32_t, 16> cb3;
void setup() {
Serial.begin(1);
delay(2000);
Serial.println("----------------------");
cb.write(0x1111);
cb.write(0x1112);
cb.write(0x1113);
cb.write(0x1114);
cb.write(0x1115);
Serial.print("Available: "); Serial.println(cb.available());
while ( cb.available() > 0 ) {
Serial.println(cb.read(), HEX);
}
Serial.println("----------------------");
cb2.write(0x8807);
cb2.write(6);
cb2.write(0x2113);
cb2.write(0x2114);
cb2.write(0x2115);
cb2.write(0x2116);
cb2.write(0x2117);
cb2.write(0x2118);
cb2.write(0x2119);
Serial.print("Available: "); Serial.println(cb2.available());
Serial.println("Peekbytes:");
uint16_t buf[6];
Serial.print("Count: "); Serial.println(cb2.readBytes(buf, 6));
for ( uint16_t i = 0; i < 6; i++ ) {
Serial.print(buf[i], HEX); Serial.print(" ");
} Serial.println();
Serial.print("Print FIFO: "); Serial.println(cb2.available());
while ( cb2.available() > 0 ) {
Serial.println(cb2.peek(), HEX);
Serial.println(cb2.read(), HEX);
}
cb3.write(0x10002111);
cb3.write(0x10002112);
cb3.write(0x10002113);
cb3.write(0x10002114);
cb3.write(0x10002115);
cb3.write(0x10002116);
cb3.write(0x10002117);
cb3.write(0x10002118);
cb3.write(0x10002119);
cb3.write(0x10002110);
Serial.print("Available: "); Serial.println(cb3.available());
while ( cb3.available() > 0 ) {
Serial.println(cb3.peek(), HEX);
Serial.println(cb3.read(), HEX);
}
}
void loop() {
}
----------------------
Available: 5
1111
1112
1113
1114
1115
----------------------
Available: 9
Peekbytes:
Count: 6
8807 6 2113 2114 2115 2116
Print FIFO: 3
2117
2117
2118
2118
2119
2119
Available: 10
10002111
10002111
10002112
10002112
10002113
10002113
10002114
10002114
10002115
10002115
10002116
10002116
10002117
10002117
10002118
10002118
10002119
10002119
10002110
10002110
Thanks man. Been playing with all day. If I press the reset button it responds and prints to the sermon or to the converter direct to the PC. I'll definitely check out the datasheet again and pin 2. Fun times.pin2 is floating (not connected) so you would need to solder a jumper there to use that,
cb4.write(0x2113);
cb4.write(0x2114);
uint16_t buff[4] = { 'T', 'o', 'n', 'y' };
cb4.write(buff, 4);
cb4.write(0x2115);
cb4.write(0x2116);
Serial.print("cb4 Available: "); Serial.println(cb4.available());
Serial.println("Printout:");
while ( cb4.available() > 0 ) {
Serial.println(cb4.read(), HEX);
}
void Circular_Buffer<T,_size>::write(const T *buffer, uint16_t length) {
if ( length < ( _size - tail ) ) {
memmove(_cbuf+tail,buffer,length*sizeof(T));
tail = (tail + length)&(2*_size-1);
}
else for ( uint16_t i = 0; i < length; i++ ) write(buffer[i]);
}
Circular_Buffer<uint16_t, 2048> cb;
Circular_Buffer<uint16_t, 16> cb2;
Circular_Buffer<uint32_t, 16> cb3;
Circular_Buffer<uint16_t, 16> cb4;
void setup() {
........etc
...
also, no malloc or new! very clean
#include "circular_buffer.h"
Circular_Buffer<uint16_t, 2048> cb;
Circular_Buffer<uint16_t, 16> cb2;
Circular_Buffer<uint32_t, 16> cb3;
Circular_Buffer<uint16_t, 16> cb4;
void setup() {
Serial.begin(1);
delay(2000);
Serial.println("----------------------");
cb.write(0x1111);
cb.write(0x1112);
cb.write(0x1113);
cb.write(0x1114);
cb.write(0x1115);
Serial.print("Available: "); Serial.println(cb.available());
while ( cb.available() > 0 ) {
Serial.println(cb.read(), HEX);
}
Serial.println("----------------------");
cb2.write(0x8807);
cb2.write(6);
cb2.write(0x2113);
cb2.write(0x2114);
cb2.write(0x2115);
cb2.write(0x2116);
cb2.write(0x2117);
cb2.write(0x2118);
cb2.write(0x2119);
Serial.print("Available: "); Serial.println(cb2.available());
Serial.println("Peekbytes:");
uint16_t buf[6];
Serial.print("Count: "); Serial.println(cb2.readBytes(buf, 6));
for ( uint16_t i = 0; i < 6; i++ ) {
Serial.print(buf[i], HEX); Serial.print(" ");
} Serial.println();
Serial.print("Print FIFO: "); Serial.println(cb2.available());
while ( cb2.available() > 0 ) {
Serial.println(cb2.peek(), HEX);
Serial.println(cb2.read(), HEX);
}
cb3.write(0x10002111);
cb3.write(0x10002112);
cb3.write(0x10002113);
cb3.write(0x10002114);
cb3.write(0x10002115);
cb3.write(0x10002116);
cb3.write(0x10002117);
cb3.write(0x10002118);
cb3.write(0x10002119);
cb3.write(0x10002110);
Serial.print("Available: "); Serial.println(cb3.available());
while ( cb3.available() > 0 ) {
Serial.println(cb3.peek(), HEX);
Serial.println(cb3.read(), HEX);
}
cb4.write(0x2113);
cb4.write(0x2114);
uint16_t buff[4] = { 'T', 'o', 'n', 'y' };
cb4.write(buff, 4);
cb4.write(0x2115);
cb4.write(0x2116);
Serial.print("cb4 Available: "); Serial.println(cb4.available());
Serial.println("Printout:");
while ( cb4.available() > 0 ) {
Serial.println(cb4.read(), HEX);
}
}
void loop() {
}
void write(T value); <-- write a single Type value
void write(const T *buffer, uint16_t length); <-- write an array of same Type values
T peek(uint16_t pos = 0); <-- peek a single Type value
T peekBytes(T *buffer, uint16_t length); <-- peek a specified number of entries into a local array
T read(); <-- read a single Type value
T readBytes(T *buffer, uint16_t length); <-- read a specified number of entries into a local array
uint16_t available(); <-- how much data in queue
Circular_Buffer<uint16_t, 4> cb4;
cb4.write(0x2113);
cb4.write(0x2114);
uint16_t buff[4] = { 'T', 'o', 'n', 'y' };
cb4.write(buff, 4);
cb4.write(0x2115);
cb4.write(0x2116);
Serial.print("cb4 Available: "); Serial.println(cb4.available());
Serial.println("Printout:");
while ( cb4.available() > 0 ) {
Serial.println(cb4.read(), HEX);
}
cb4 Available: 4
Printout:
6E
79
2115
2116