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.
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
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
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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.