Ü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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.