Mehrere Arrays zusammenfügen AVR GCC

Gast #2663988
Lesenswert?

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 #2664049
Lesenswert?

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 #2664055
Lesenswert?

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 #2664071
Lesenswert?

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 #2664943
Lesenswert?

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

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