Der Vergleich mit meinem Vater war natürlich nur Spaß, ich habe Dir dazu auch eine PM geschrieben. ![]()
Da habe ich wohl etwas ungenau zitiert, entscheidend ist aber, daß ich mit für mich vertretbarem Aufwand das nicht umgeschrieben bekomme. Da ich die Beispiele von jurs aber gerne als Vorbild nehme, habe ich mich da soweit reingedacht, daß ich neben dem Font die zu ändernde Stelle benennen kann. Es handelt sich im die Funktion textloop(). Die Variable k geht durch die Buchstaben des anzuzeigenden Texts, k macht die Bewegung der Laufschrift, i die Byte für das IC. Byte 0 ist links (IC unten, darüber die LEDs), Byte 7 rechts.
Für die Bewegung wird das Byte aus dem Font in eine temporäre unsigned int Variable kopiert, dann acht Bit nach links geschoben, dann das nächste Zeichen aus dem Font in das untere Byte der Integer-Variablen kopiert und dann mit k-8 nach rechts verschoben. Das Ergebnis wird dann zu einem Byte gewandelt und gespeichert. Das steckt in der Zeile:
data[i]=((unsigned int)disp1[thischar][i]<<8 | disp1[nextchar][i]) >>8-k;
Für eine um 90° gedrehte Bewegung muß diese Zeile komplett verändert werden.
sima6201:
Deinen Code kenne ich, funktionier aber bei mir nicht,
Anbei ein Test-Sketch, den ich gerade probiert habe. Ich hoffe, der funktioniert. ![]()
Test_Forum.ino (7.11 KB)