7-Segmentanzeige an MAX7219 schaltet sich nach einer Weile aus?

1 Antwort

Fühl mal ob der Chip heiß wird.

Wenn nicht, dann bau mal mehr Delays ein, lass also die Daten zum MAX langsamer laufen. Kann sein, dass die so schnell sind, dass die "auf der Grenze" sind und sich der MAX irgendwann "verheddert" und einen Hardlock bekommt. Dann muss man den Strom zum MAX abstellen um das zu lösen. Also gleich den ganzen Strom abstellen um den Hardlock zu lösen und neu zu initialisieren.

Bleibt nur der µC stehen, würde die Anzeige nur einfrieren, aber nicht ausgehen.

Woher ich das weiß:Berufserfahrung
stealthuser 
Fragesteller
 01.04.2024, 15:54

Der Delay beträgt 1000 ms

0
Commodore64  01.04.2024, 15:56
@stealthuser

Das kann nicht sein, dann würde es "Minuten" dauern bis die Anzeige gefüttert ist, also nur alle paar Minuten aktualisieren.

Ich meine nicht Deinen Sekundentakt in Deiner Schleife sondern den Takt mit dem der MAX seine Daten bekommt.

Hast Du sehr lange Kabel dran, musst Du diesen Takt "runter drehen". Dazu musst Du in die Bibliothek gucken die den MAX ansteuert. Entweder da drin die Delays erhöhen oder da ist meistens eine Konstante bzw. Variable drin die man von seinem Programm aus verstellen kann um den Takt zu reduzieren (oder zu beschleunigen).

1
Commodore64  01.04.2024, 18:03
@stealthuser

Ein mal warten die 500 zwischen den Updates der einzelnen Segmente. Hast Du das auch?

/* we always wait a bit between updates of the display */
unsigned long delaytime=500;

Und dann mal in der LedControl.h schauen.

Hast Du überhaupt die Taktgeschwindigkeit richtig gesetzt? Der Arduino weiß ja nicht welchen Takt der bekommt. Aber wenn die Sekunden auf der Anzeige richtig laufen, dann sollte das passen.

Jetzt stellt sich noch die Frage, ob das Ding auch genug Strom bekommt? USB bzw. der Arduino kann ja nicht beliebig viel liefern.

1