Mehrere Arrays zusammenfügen AVR GCC

Gast #2663988
Hey,

ich hoffe ihr könnt mir helfen.
ich bastel derzeit eine Art SpokePOV mit RGB-LEDs. Gefunden habe ich 
dies bei instructables.com als "RGBike Open Project".

Jetzt bin ich dabei, den Code so umzuschreiben, dass dieser Buchstaben 
darstellen kann, bzw. dass der µC eine Alphabet-Library besitzt, aus der 
er selber wählen kann.

Es sind insgesamt 16 LEDs, die angesteuert werden, ich möchte daraus 
aber 2 Zeilen zu je 8 LEDs für die Buchstaben basteln.
Nun sind die Arrays, in denen die "Bilddaten" gespeichert sind so 
aufgebaut, dass man alle 16 LEDs hintereinander ansteuern muss.

Lange Rede, kurzer Sinn, ich möchte 2 8-LEDs Arrays so zusammenfügen, 
dass diese ein 16-LED-Array bilden. Somit wird jeder Zeile des einen 
Arrays die Daten des anderen Arrays angefügt...
Ich hoffe ihr versteht, was ich meine...

Ich habe 2 Screenshots beigefügt. der 1. zeigt, wie die Arrays später an 
die Funktion übergeben werden muss, als 16-LED-Array in einer Reihe.
Der 2. zeigt, wie die Arrays in der Library aussehen, nämlich als 
8-LED-Arrays.

Vielen Dank für eure Hilfe!

L.G. Phil Malessa
Angehängte Dateien:
Gast
Hey Erich!
Danke für deine Antwort! :-)

Phil Malessa schrieb:
> Lange Rede, kurzer Sinn, ich möchte 2 8-LEDs Arrays so zusammenfügen,
>
> dass diese ein 16-LED-Array bilden. Somit wird jeder Zeile des einen
>
> Arrays die Daten des anderen Arrays angefügt...
>
> Ich hoffe ihr versteht, was ich meine...

es sollen 2 [8][12] Arrays zu einem [8][24]Array zusammengefügt 
werden... und das am besten direkt im Programm.
Gast
1
/**************************************************
2
* Send GS data
3
* ---------------------
4
* Should receive a 24 byte array adress in program
5
* memory, to send 192 bits
6
***************************************************/
7
void TLC_Send_GS(uint8_t *data) {
8
  uint8_t i;
9
  for(i=0; i<24; i++){
10
    SPDR = pgm_read_byte(data);  //start sending
11
    while (!(SPSR & (1<<SPIF))); //wait until not sent  
12
    data++;
13
  }
14
}
Dieser Funktion muss ein 24 Byte Array übergeben werden, und dieses soll 
erst aus 2 12 Byte Arrays zusammengefügt werden. (2 Buchstaben)
Kann man die einfach mit +-Operator "addieren", oder wie macht man das?
Kann es nämlich derzeit nicht durch Try and Fail ausprobieren, deshalb 
wende ich mich an euch!

L.G. Phil
Gast
Dann übergib doch einfach zwei Pointer, erst ratterst du das eine Array 
durch, anschließend das Andere. Du brauchst doch das zeuch nicht 
zusammenfügen, du kannst die doch dann direkt hintereinander ausgeben!?


Ingo
Gast
Hey Ingo,
Danke für deine Atnwort!
Es ist mal wieder ein Beweis dafür, dass man selbst die einfachsten 
Sachen manchmal nicht selber lösen kann!!
Vielen Dank!

PS: Der Code ist nicht von mir, ich schreibe ihn nur um. Deshalb hab ich 
die Comments nicht auf Rechtschreibfehler überprüft xD

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.