CAN LPC 1768 struct array

Gast #2196544
Lesenswert?

Hallo,

Habe ein kleines Problem mit dem weiterverarbeiten von CAN Daten.
Diese lege ich in einem struct ab der in etwa so aussieht:

typedef struct
{
uint32_t Frame;
uint32_t MsgID;
uint32_t DataA;
uint32_t DataB;
} CAN_MSG;

Mit dem senden und empfangen der Daten habe ich keine Probleme.
Diese Daten die empfangen werden sollen nun irgendwie in ein Array[40] 
gelegt werden.
Dann wird das ganze per USB versendet. Und der Array inhalt gelöscht.

Hab mit struct und array noch nicht zumindest in Verbinding der beiden 
gearbeitet wäre also dankbar für einen kleinen Denkanstoß.


MfG
Gast #2196628
Lesenswert?

Dachte eigentlich eher in diese Richtung:

Ich lege mir ein Array an:

CAN_MSG Massage_Buffer[40];


Die frage ist jetzt nur wie ich es möglichst geschickt anstelle, dass 
ich immer wenn eine CAN Botschaft ankommt diese im nächten Bereich des 
Arrays gespeichert wird. Also mit for Schleife ginge das aber das bringt 
mir irgendwie nichts, weil ich den Prozessor nicht die ganze Zeit in der 
Schleife rumlungern lassen kann, weil der auch noch andere Sachen zu tun 
hat...
Gast #2196772
Lesenswert?

In Deinem Fall "Index". Man kann das Ganze aber auch über Pointer 
implementieren. Ein Flag kennt im allgemeinen nur zwei Zustände.

Das was Du da baust ist im Prinzip eine Warteschlange bzw Queue. Eine 
Ringpuffer (ring buffer, circular buffer) ist spezielle Variante einer 
solche Warteschlange.
Wenn Du mal nach diesen Begriffen suchst, wirst Du jede Menge Infos dazu 
finden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren