Übergabe von Array Werten in ein anderes Array

OP #1915296
Lesenswert?

Hallo Leute,

ich habe mal wieder ein kleines Problemchen.
(Die lösung sollte mit WinAVR funktionieren)

Ich habe 2 mehrdimensionale Arrays mit jeweils 5x6 elementen.
Nun möchte ich die werte aus dem einen array in das andere übergeben. 
Und das möglcihst schnell.
Folgendes möchte ich nach Möglichkeit nicht verwenden:
1
for(unsigned char k=0;k<5;k++)
2
  {
3
  for(unsigned char j=0;j<6;j++)
4
    {
5
    wurst_array[k][j]=brot_array[k][j];
6
    }
7
  }

Hintergrund ist: ich möchte mir eine Art Ringpuffer anlegen, weil ich 
interrptgesteuert sowohl daten empfange als auch versende.Und das mit 
verschiedenen schnittstellen bzw. geschwidigkeiten. und zwischendrin 
habe ich nicht viel zeit.

Grüße Tarkan
Moderator (Firma: Titel) Persönliche Seite #1915303
Lesenswert?

Tarkan D. schrieb:
> Nun möchte ich die werte aus dem einen array in das andere übergeben.
Nimm memcpy();
Aber das kostet trotzdem ziemlich noch viel Prozessorzeit...

> ich möchte mir eine Art Ringpuffer anlegen
Ringpuffer funktionieren aber anders:
Da gibt es einen Speicherbereich, und in diesen Speicherbereich grifen 2 
Pointer: ein Schreib- und ein Lesezeiger.
OP #1915313
Lesenswert?

Lothar Miller schrieb:
>> ich möchte mir eine Art Ringpuffer anlegen
> Ringpuffer funktionieren aber anders:
> Da gibt es einen Speicherbereich, und in diesen Speicherbereich grifen 2
> Pointer: ein Schreib- und ein Lesezeiger.

Deswegen ja so eine "Art" Ringpuffer. Ich habe es nicht mit einzelnen 
bytes zu tun, sondern mit paketen.Der Paket-Anfang darf nihct 
überschrieben werden bevor ich ihn abgeholt habe.

PS: gibt es eine Möglichkeit zu sehen wie lang bestimmter code zum 
ausführen braucht(ohne sich das aufwändig aus der dissassembly listening 
rauszurechnen)??
Gast #1915336
Lesenswert?

> Der Paket-Anfang darf nihct überschrieben werden
> bevor ich ihn abgeholt habe.
Kein Problem. Lesezeiger erst weiterschieben wenn du das Paket ganz 
gelsen hast.
Du must nur aufpassen wenn das Paket halb am Ende und halb am Anfang des 
Ringpuffers liegt. Kannst du damit was anfangen oder musst du es zuerst 
zusammensetzen? Das Problem hast du damit nicht:
> ... Pointer Swappen ...

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