hi,
ich hab mir selbst ein fifo-buffer programmiert und ich bin mir nicht sicher warum das hier so ist: wenn ich diesen code hier benutze (auszug aus main())
Code:
while(TRUE)
{
int8_t data = 0xFF;
if(fifo_pop(fifo_rx, &data) == FIFO_SUCCESS)
{
uart_putc(data);
}
}
dann bekomm ich beim übertragen immer fehler in form von daten die nicht im fifo-buffer stehen. benutz ich aber folgenden code, der ja theoretisch das gleiche ist bekomm ich eine saubere übertragung:
Code:
while(TRUE)
{
int8_t *data = (int8_t*) malloc(1);
if(fifo_pop(fifo_rx, data) == FIFO_SUCCESS)
{
uart_putc(*data);
}
free(data);
}
ich hab den fifo-buffer mal in einem C-Programm implementiert und getest - scheint zu funktionieren. hier der code: http://nopaste.debianforum.de/6098
die ausgabe von dem prgramm sieht so aus:
Code:
104
97
108
108
111
97
98
99
0
----------------------------
h
----------------------------
97
108
108
111
97
98
99
0
0
was meint ihr dazu?
mfg blan
Lesezeichen