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
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.
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
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
Phil Malessa schrieb: > //wait until not sent Eh, sollte es nicht besser heißen: "Wait until send" ? Nur mal so am Rande...
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
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.