Dann ist es am klarsten etwa so
Code:
typedef struct
{
unsigned int schnittstelle:3;
unsigned int flag_1:1;
unsigned int status:4;
unsigned char count;
unsigned char buf[12];
} buffer_t;
buffer_t buffers[ANZAHL];
Dann hat jeder Puffer ein Status-Feld (4 Bit), ein Feld zum coden der Schnittstelle (3 Bit), ein Flag (1 Bit) und den eigentlichen Daten-Puffer (12 Bytes) und ein Byte für die Anzahl Bytes im Puffer (count).
Dann kannst du einfach setzen
Code:
buffers[2].schnittstelle = SID_UART0;
oder so. Wieso musst du die Schnittstelle überhaupt merken, die kannst du doch fest einem Puffer zuordnen (bzw. ein Puffer für jede Schnittstelle), etwa so:
Code:
buffers[SID_UART0].flag = 1;
".schnittstelle" ist damit redundant und kann entfallen. Du arbeitest doch nichst etwa mit malloc???
Lesezeichen