fixed cb_double

master
adragott 5 years ago
parent cb8ce33584
commit 3b75d1609b

Binary file not shown.

Binary file not shown.

@ -354,7 +354,10 @@ PB_CB_STATUS p_cb_double_init(p_cb_double* circ_buffer, double* buff, uint32_t m
ret = PB_CB_BAD_BUFFER_SIZE; ret = PB_CB_BAD_BUFFER_SIZE;
break; break;
} }
circ_buffer->max_len = max_length; printf("init\r\n");
circ_buffer->buffer = buff;
circ_buffer->max_len = (uint16_t)max_length;
circ_buffer->head = 0;
circ_buffer->push = p_cb_double_push; circ_buffer->push = p_cb_double_push;
circ_buffer->empty = p_cb_double_empty; circ_buffer->empty = p_cb_double_empty;
circ_buffer->empty(circ_buffer); circ_buffer->empty(circ_buffer);
@ -381,7 +384,6 @@ PB_CB_STATUS p_cb_double_push(p_cb_double* cbuffer, double value)
{ {
cbuffer->buffer[cbuffer->head] = value; cbuffer->buffer[cbuffer->head] = value;
cbuffer->head = (cbuffer->head + 1) % cbuffer->max_len; cbuffer->head = (cbuffer->head + 1) % cbuffer->max_len;
printf("head: %d\r\n", cbuffer->max_len);
} }
// Debugging // Debugging

@ -1,21 +1,27 @@
#include <stdio.h> #include <stdio.h>
#include <inttypes.h>
#include <PCircularBuffer.h> #include <PCircularBuffer.h>
int main() int main()
{ {
const uint16_t maxlength = 16; const uint16_t maxlength = 16;
double my_buffer[maxlength]; double my_buffer[maxlength];
p_cb_double data; p_cb_double data;
for(int ind = 0; ind < 2; ind++) p_cb_double_init(&data, my_buffer, 16);
for(int x = 0; x < 32; x++)
{ {
for(int x = 0; x < 16; x++) if( x < 16)
{ {
printf("[%02d] Before: %02lf\t", x, data.buffer[x]); printf("[%02d] Before: %02lf\t", x, data.buffer[x]);
data.push(&data, (double)x); data.push(&data, (double)x);
printf("[%02d] After: %02lf\r\n", x, data.buffer[x]); printf("[%02d] After: %02lf\r\n", x, data.buffer[x]);
} }
else
{
printf("[%02d] Before: %02lf\t", x - 16, data.buffer[x - 16]);
data.push(&data, (double)x);
printf("[%02d] After: %02lf\r\n", x - 16, data.buffer[x - 16]);
}
} }
int x = 5;
printf("%d\r\n", x);
return 0; return 0;
} }
Loading…
Cancel
Save