Hi Thinkfat,
The problem is simply that cycle on the total length of the array,
But it's not a problem because the arrays are correctly filled.
volatile uint64_t _s_circbuf_ten64 = 0;
_s_circbuf_ten64 = sizeof(circbuf_ten64) / sizeof(uint64_t); _s => size circbuf_ten64 => 11!!!!
for(int i=0; i <= _s_circbuf_ten64; i++) // => probably (_s_circbuf_ten64-1) make sense
{
print lines like circbuf_ten64[i]:
}
...
Following an example on 10s buffer:
#
circbuf_ten64[0]: 28485109 <= NEW ENTRY same value as 64-bit Counter <= FIRST VALUE in array0 correct
circbuf_ten64[1]:
circbuf_ten64[2]:
circbuf_ten64[3]:
circbuf_ten64[4]:
circbuf_ten64[5]:
circbuf_ten64[6]:
circbuf_ten64[7]:
circbuf_ten64[8]:
circbuf_ten64[9]:
circbuf_ten64[10]:
circbuf_ten64[11]:
Fix time 958mS
measurements using 64-bit counter:
64-bit Counter: 28485109
Frequency: 10000003 Hz
10s Avg: 0.0 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 4
#
#
circbuf_ten64[0]: 28485109
circbuf_ten64[1]: 38485113 <= NEW ENTRY same value as 64-bit Counter
circbuf_ten64[2]:
circbuf_ten64[3]:
circbuf_ten64[4]:
circbuf_ten64[5]:
circbuf_ten64[6]:
circbuf_ten64[7]:
circbuf_ten64[8]:
circbuf_ten64[9]:
circbuf_ten64[10]:
circbuf_ten64[11]: 28485109 <= first value now shifting in last position and remaing here...
Fix time 966mS
measurements using 64-bit counter:
64-bit Counter: 38485113
Frequency: 10000004 Hz
10s Avg: 0.0 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 5
#
#
circbuf_ten64[0]: 28485109
circbuf_ten64[1]: 38485113
circbuf_ten64[2]: 48485116 <= NEW ENTRY same value as 64-bit Counter
circbuf_ten64[3]:
circbuf_ten64[4]:
circbuf_ten64[5]:
circbuf_ten64[6]:
circbuf_ten64[7]:
circbuf_ten64[8]:
circbuf_ten64[9]:
circbuf_ten64[10]:
circbuf_ten64[11]: 28485109
Fix time 963mS
measurements using 64-bit counter:
64-bit Counter: 48485116
Frequency: 10000003 Hz
10s Avg: 0.0 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 6
#
and so on ... in the end show this:
#
circbuf_ten64[0]: 28485109
circbuf_ten64[1]: 38485113
circbuf_ten64[2]: 48485116
circbuf_ten64[3]: 58485119
circbuf_ten64[4]: 68485122
circbuf_ten64[5]: 78485126
circbuf_ten64[6]: 88485129
circbuf_ten64[7]: 98485132
circbuf_ten64[8]: 108485135
circbuf_ten64[9]: 118485139 <= NEW ENTRY same value as 64-bit Counter
circbuf_ten64[10]:
circbuf_ten64[11]: 28485109
Fix time 959mS
measurements using 64-bit counter:
64-bit Counter: 118485139
Frequency: 10000004 Hz
10s Avg: 0.0 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 13
#
#
circbuf_ten64[0]: 28485109
circbuf_ten64[1]: 38485113
circbuf_ten64[2]: 48485116
circbuf_ten64[3]: 58485119
circbuf_ten64[4]: 68485122
circbuf_ten64[5]: 78485126
circbuf_ten64[6]: 88485129
circbuf_ten64[7]: 98485132
circbuf_ten64[8]: 108485135
circbuf_ten64[9]: 118485139
circbuf_ten64[10]: 128485142 <= NEW ENTRY same value as 64-bit Counter
circbuf_ten64[11]: 28485109
Fix time 961mS
measurements using 64-bit counter:
64-bit Counter: 128485142
Frequency: 10000003 Hz
10s Avg: 10000003.3 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 14
#
#
circbuf_ten64[0]: 138485145 <= NEW ENTRY same value as 64-bit Counter <= new beginning of cycle but last value is the same
circbuf_ten64[1]: 38485113
circbuf_ten64[2]: 48485116
circbuf_ten64[3]: 58485119
circbuf_ten64[4]: 68485122
circbuf_ten64[5]: 78485126
circbuf_ten64[6]: 88485129
circbuf_ten64[7]: 98485132
circbuf_ten64[8]: 108485135
circbuf_ten64[9]: 118485139
circbuf_ten64[10]: 128485142
circbuf_ten64[11]: 28485109 <= SAME VALUE for many many cycle, when and where change?
Fix time 956mS
measurements using 64-bit counter:
64-bit Counter: 138485145
Frequency: 10000003 Hz
10s Avg: 10000003.2 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 15
#
#
circbuf_ten64[0]: 138485145
circbuf_ten64[1]: 148485148 <= NEW ENTRY same value as 64-bit Counter
circbuf_ten64[2]: 48485116
circbuf_ten64[3]: 58485119
circbuf_ten64[4]: 68485122
circbuf_ten64[5]: 78485126
circbuf_ten64[6]: 88485129
circbuf_ten64[7]: 98485132
circbuf_ten64[8]: 108485135
circbuf_ten64[9]: 118485139
circbuf_ten64[10]: 128485142
circbuf_ten64[11]: 28485109
Fix time 962mS
measurements using 64-bit counter:
64-bit Counter: 148485148
Frequency: 10000003 Hz
10s Avg: 10000003.2 Hz
100s Avg: 0.00 Hz
1,000s Avg: 0.000 Hz
10,000s Avg: 0.0000 Hz
avgupsec: 16
#
and so on...
Excellent work finding this bug! I am Going to Try your solution ASAP. But it Makes Sense, When I Have Very Good Satellite Reception I Don't Get The "Jumps" So Much.
Thank You!
I am Happy That I Can Help !!!
This project is very nice and not expensive, this makes it quite easily.
bye A.