Forum: Mikrocontroller und Digitale Elektronik 7- Segment gemultiplext


von Honkey H. (honkeys)


Angehängte Dateien:

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.

von Peter D. (peda)


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

von Honkey H. (honkeys)


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

von Peter D. (peda)


Lesenswert?

Honkey Honk wrote:
> 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?


Beitrag "ADC mit Multiplexanzeige"


Peter

von Karl H. (kbuchegg)


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.


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.