Dann ist es am klarsten etwa so
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).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 kannst du einfach setzen
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[2].schnittstelle = SID_UART0;
".schnittstelle" ist damit redundant und kann entfallen. Du arbeitest doch nichst etwa mit malloc???Code:buffers[SID_UART0].flag = 1;







Zitieren
Lesezeichen