Hallo,
ich versuche gerade solche 8x8 Matrix zum Laufen zu bringen und habe mir
auf die schnelle mal einen Shetch aus dem Netz gefischt.
Dieser bricht aber mit Fehler ab und nach Internetsuche soll das wohl
mit einer zu neuen IDE zusammnehängen. Ich habe die Version Arduino
1.6.7.
Fehler:
sketch_mar15a:24: error: 'prog_uchar' does not name a type
PROGMEM prog_uchar CH[] = {
^
C:\Users\Egon\Documents\Arduino\sketch_mar15a\sketch_mar15a.ino: In
function 'void printCharWithShift(char, int)':
sketch_mar15a:182: error: 'CH' was not declared in this scope
memcpy_P(buffer, CH + 7*c, 7);
^
exit status 1
'prog_uchar' does not name a type
Angehangen habe ich mal den vollständigen Sketch.
Meine eigenen Versuche bringen aber eher mehr Fehler wenn ich den Hilfen
aus dem Netz dazu folge. Demnach wäre "prog_char" mit "const char" zu
ersetzen, aber das funktioniert eher weniger.
Wäre nett wenn mir Jemand helfen würde ich es richtig machen muß.
Danke, Egon
das sieht dann so aus:
sketch_mar15a:24: error: 'prog_uchar' does not name a type
prog_uchar CH[] PROGMEM = {...}
^
sketch_mar15a:26: error: expected unqualified-id before numeric constant
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
^
sketch_mar15a:121: error: expected declaration before '}' token
};
^
exit status 1
'prog_uchar' does not name a type
Einfach dann 90° verdreht schieben. Der Max oder das Display hat keinen
"Klatsch" weg. Ich gehe davon aus das das Display Common Kathode ist,
statt Common Anode - das resultiert dann in einem 90° gedrehtem Ausgang
des Max zu den LEDs.
Das Problem dabei ist, du musst dir deine Routine für den Max dann
selbst schreiben, ist aber kein großes Hexenwerk. Und da lernst du
wirklich viel - vor allem wie der Max an sich arbeitet.
Das ist halt der Nachteil bei der Arduino Geschichte, Solange alles
"Standart" ist, funktioniert das Zeugs (Sketches nennt ihr das oder?!)
aber sobald etwas anders ist, funktioniert nix mehr und die "Maker"
wissen sich nicht mehr selbst zu helfen.
Nimm dir das Datenblatt zum Max... schau wie die Timings und I2C
Reihenfolge sind und los gehts!
Überdenke dir das obige nochmal, mach dir ein Ablaufdiagramm und gehe
schritt für Schritt durch:
Du sendest ein UART String vom Rechner zu µC: "Hallo Welt!"... einmal in
der Sekunde z.b. (Und das ist schon verdammt lang).
Deine "Routine" zum auslesen des UART Buffers läuft in einer While
Schleife solange der Buffer leer ist. Das ist schonmal richtig so. Wobei
man das in einer Interrupt Routine macht (Es sei denn es ist ein
Mega32u4 etc... welche über USB keinen Interrupt bereitstellen).
Jedoch blockst du diese Routine mit "printCharWithShift(c,100)" jedesmal
um 100ms. Der String hat nun 11 Zeichen, das sind 1100ms - über eine
Sekunde in dem du die Routine blockst. Kommt jetzt aber in der nächsten
Sekunde der nächste String, verhasptüdelt sich alles.
Nach der Uart-Routine hast du nochmal ein "delay(100);" - lass das doch
weg, den brauchst du garnicht - lass ihn doch gleich wieder prüfen ob
ein Zeichen im UART ist. Ob ein µC nun mit nem "nop" beschäftigt ist
oder auf nen Zeichen prüft ist im Rille, aber Zeichen prüfen macht mehr
Sinn. ;)
Was nun "m.ShiftLeft(bool, bool)" ist, weiß ich nicht, aber ich denke
das ist ne Setup Einstellung, und gehört damit in die Init Routine.
Welcher µC steckt denn im Arduino?!
Hi
Wenn der Sketch für eine ältere Arduino-Version gedacht war - was
spricht gegen einen Versuch mit einer 'älteren Arduino-Umgebung'?
Diese müsste den Sketch ja korrekt compilieren.
Ausnahme: Die ältere Umgebung kann mit dem neueren Arduino Nichts
anfangen - dann hättest Du aber zumindest ein brennbares File für einen
der älteren Chips - vll. auch eine Überlegung wert.
MfG
PS: Ja, den roten Text hatte ich gesehen ;)
Peter schrieb:> Gibt es inzwischen eine Lösung für das Problem?
Für die Arduino-IDE und diese 8x8 Matrix-Module mit MAX7219 und roten
LEDs gibt es im Internet reihenweise Codes, das Internet ist voll davon.
Wenn ein Sketch mal nicht funktioniert, bzw. mit Deiner IDE-Version
nicht funktioniert, dann nimmst Du eben den nächsten. Der ist im
Zweifelsfall genau einmal Googeln weit entfernt.
Wo ist das Problem?
Hast Du irgendwelche speziellen Wünsche, was Du auf dem Modul anzeigen
möchtest?
ASCII-Zeichen? Eigene Muster? Laufschrift?