Moin!
Habe jetzt nach einigen Monaten Pause einige LED-Displays (2 x 40x16, untereinander) aus'm Keller gekramt.
Die Ansteuerung ist eigentlich recht simpel und orientiert sich an dem Prinzip, einfach die gewünschte Farbe ins Array zu schreiben und das Array dann im Timer auszulesen und an die HC595 Schieberegister zu geben. Als letztes dann noch die Zeile hinterher und gut ist.
Funktioniert auch alles prima, nur die letzte Zeile, also in meinem Fall die 16. ist immer wesentlich heller als die anderen. Ich denke, dass wird 'nen Timingproblem beim Umschalten der Zeile sein, aber ich bin zu dämlich, dass zu fixen.
Vielleicht kann sich ja mal einer den Code der Timerroutine ansehen und mir weiterhelfen. Wiegesagt, er sollte einfach zu verstehen sein, sonst fragen.
Danke und Gruß
Jan
Erste_led = 1
Letzte_led = Displaybreite '40
For Zeile = 0 To 15
For Led = Letzte_led To Erste_led Step -1
Display1 = Pixel_array(led)
Display2 = Pixel_array(led + 640)
Select Case Display1
Case 1
Set Display1red
Reset Display1green
Case 2
Reset Display1red
Set Display1green
Case 3
Set Display1red
Set Display1green
Case 0
Reset Display1red
Reset Display1green
End Select
Select Case Display2
Case 1
Set Display2red
Reset Display2green
Case 2
Reset Display2red
Set Display2green
Case 3
Set Display2red
Set Display2green
Case 0
Reset Display2red
Reset Display2green
End Select
Set Clk
Reset Clk
Next Led
Erste_led = Erste_led + Displaybreite
Letzte_led = Letzte_led + Displaybreite
Shiftout Display1red , Clkrow , Zeile , 0
Set Strobe
Reset Strobe
Next Zeile
Alles anzeigen