Hallo, ich habe folgendes Anliegen, ich bekommen in meine CPU z.B. Folgendes rein: -Header-- -Command- --------Data------------ Daten RX: 0x41 0x01 0x00 0x05 0x00 0x01 0x02 0x03 0x04 Nun möchte ich diese Daten in den Buffer fifo_rx2 Schieben Ohne Header und Ohne Command, diese sollen in zwei weitere Arrays Kopiert werden. Momentan kopiere ich alles per memcpy, Ich hätte aber gerne die Daten gesplittet... Byte fifo_rx [512]; Byte fifo_rx2 [receivedByte]; Funktion switch (fifo_rx[0]) { case 0x41: //Q memcpy(fifo_rx2,fifo_rx,sizeof(fifo_rx2)); udi_cdc_putc(sizeof(fifo_rx2)); udi_cdc_write_buf(fifo_rx2, sizeof(fifo_rx2)); break; } Danke für eure Hilfe
Wenn der Header und der Command konstante Länge haben:
1 | memcpy(fifo_rx2, fifo_rx + HEADER_LEN + COMMAND_LEN, sizeof(fifo_rx2)); |
Max H. schrieb: > Wenn der Header und der Command konstante Länge haben:
1 | > memcpy(fifo_rx2, fifo_rx + HEADER_LEN + COMMAND_LEN, sizeof(fifo_rx2)); |
Das gilt auch, wenn deren Länge nicht konstant ist — dann hängen HEADER_LEN und COMMAND_LEN eben von irgendwelchen Parametern ab. Und selbst wenn HEADER_LEN und COMMAND_LEN konstant sind, kann durchaus sein, dass HEADER_LEN != sizeof (header) oder COMMAND_LEN != sizeof (command).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.