7- Segment gemultiplext

#455937
Lesenswert?

Hallo ich habe folgendes Problem, ich habe eine Zeitanzeige mit 3 7- 
Segmentanzeigen gebaut, die gemultiplext werden allerdings ist Segment 3 
sehr hell, so wie es sein sollte und die Segmente werde dann immer 
dunkler, so dunkel dass man sie kaum noch ablesen kann. Wodran kann das 
liegen, habe jetzt schon alles mal ausprobiert um das Problem zu lösen. 
Hat allerdings alles nichts gebracht.
Angehängte Dateien:
#455960
Lesenswert?

Strukturierung und Kommentierung des Programms würde helfen.

Du mußt dafür sorgen, daß jedes Digit gleich lang leuchtet.

Dazu legt man z.B. 3 Byte Puffer an, in die dann die Segmentmuster 
abgespeichert werden und der Timerinterrupt gibt sie dann nur aus.

Außerdem dürfen teure Berechnungen (z.B. Division) nicht in Interrupts 
erfolgen, wenn man nicht sicherstellt, daß sie vor dem nächsten 
Interrupt beeendet sind.


Peter
#455970
Lesenswert?

Ein 3- Byte Puffer mmh hört sich gut an aber keine Ahnung wie ich das 
mache, haste da vielleicht mal irgendwas zum nachlesen oder so?
Also ist das mit switch und case ungünstig wie ich es jetzt mache?
Vielleicht könnte mir jemand zeigen wie man es "optimal" macht.

Dankeschön schonmal im Vorraus
#456025
Lesenswert?

> Also ist das mit switch und case ungünstig wie ich es jetzt mache?

Du machst viel zu viel im Interrupt.
Leg deine ganzen Berechnungen in die Hauptschleife.
In der Hauptschleife berechnest du alles was es zu
berechnen gibt und legst dir die Bytes fix fertig für
die Ausgabe an die einzelnen 7-Segment Anzeigen zurecht
(in 3 globalen Variablen; eben der Puffer, den Peter
angesprochen hat).

Im Interrupt wird dann nur noch die Ausgabe gemacht.
Also die bereits fertig berechneten Bytes abwechselnd
an die einzelnen Anzeigen legen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren