Ich hab mir überlegt und auch etwas herumgespielt mit 7-Segment anzeigen. Wenn ich die jetz multiplexen möchte also ein par transis und nen mega, was dann die perfekten zeiten sind, welche dafür nötig sind, dass keil flackern auftritt, und die segmente nicht "nachläuchten" also immer noch ein bisschen läuchten obwohl auf dem segment nix zu sehen ist. Ich hoff jemand hat da etwas erfahrung gesammelt. Grüße
Wenn da was "nachläuchtet" (schreibt man übrigens nicht mit ä), dann ist die Multiplexsteuerung falsch programmiert. Perfekte Zeiten? 100Hz und mehr. (aber nicht zu hoch in den kHz-Bereich gehen, sonst führen evtl. die Schaltzeiten von Transistor & Co. evtl. dann doch wieder zum "nachläuchten")
Deutsch oder Englisch bitte. Damit kein Flackern auftritt, sollte es so schnell wie möglich sein. Ich würde aber sagen 50Hz müssten reichen.
50Hz reichen nicht, 100 schon. Die obere Grenze ergibt sich meist aus den EMV Anforderungen, das Ding soll ja andere Geräte nicht stören, und bei Multiplexanzeigen fliessen recht hohe Ströme. Daher legt man bei kommerziellen Anzeigen wert auf langsamen Ansteig und Abfall der Ströme, das bremst. Ist die Multiplexanzeige bewegt, kann man mehr als 100Hz benötigen.
100Hz * Digitanzahl Nachleuchten ist meistens ein SW-Fehler oder Transistoren in Emitterschaltung. Daher besser in Kollektorschaltung oder FETs. Peter
hab in meinem Programm jetzt halt 450 mikrosekunden wo die an ist, und dann schalt ich die wieder aus und die nächste wieder an und isgesammt halt 5 stück. Ich werds mir nacher mal durchrechnen, aber dankeschonmal. CU P.S.: 50 und 100 Hz sind bei den fernsehern doch auch der fall gell ;)
Oberhalb 100 Hz Wiederholfrequenz flackert nichts mehr, ich nehme immer Werte so zwischen 120 und 150 Hz. An den Prozessortakt angepasst und auf gute Teilbarkeit optimiert. Nachleuchten vermeidest Du, indem Du beim Wechsel zuerst den Digittreiber abschaltest, dann die neue Segmentinformation an die Anzeige ausgibst und am Schluß den nächsten zugehörigen Digittreiber wieder einschaltest. Also nicht bei aktivem Digittreiber die Segmenansteuerung wechseln, das sieht man. Reinhard
> Ich werds mir nacher mal durchrechnen ...
Vorher durchrechnen wäre auch eine Möglichkeit :-/
Jo vorher würde ich machen, aber das war eins meiner ersten projekte und das fand ich echt schon gut ;) naja okay das nächste mal dann. Das mit der übergabe daran hab ich gar nicht gedacht, ich mach mir grad das layout für ein 5 stelliges display so wie ein LCD nur mit 7-Seg, da werd ich mir dann mehr mühe machen ;)
das hat nix mit Layout zu tun, sondern etwas mit dem Timing beim ansteuern der Segmente und Digits ....
wie MaWin schon sagte: 100 Hz reichen nicht unbedingt. Beim Fernseher fällt es nicht auf, da das Bild bewegt ist und (bei röhren) leicht nachleuchtet. wenn du eine LED mit 100Hz und geringem Duty-Cylce pulst und deinen Kopf bewegst (oder die LED) hast du so einen Perlenschnur-Eeffekt. Das kann ganz schön unangenehm sein. Edit: >das hat nix mit Layout zu tun, sondern etwas mit dem Timing beim >ansteuern der Segmente und Digits .... würd ich auch vermuten. Zb, dass du erst den einen Port umschaltens, dann den anderen. -> die falschen LEDs gehen erst mal ganz kurz an. um das zu beheben must du den anderen Port erst ausschalten, dann den einen an und dann den anderen wieder mit dem neuen Wert.
Okay habs jetzt mal soweit verbessert, und zuerst das neue zeichen "angelegt" und dann die masse durchgeschalten. funktioniert perfekt! DANKE! Aber jetzt nochmal zu der frequenz, wenn ich da jetzt immer 1ms warte pro segment, dann macht das mich pro durchlauf eines Taktes ja immer 5 ms also geht mir da ziemlich die rechenleistung verloren. wenn ich jetzt nicht alzu lang warte, dann werden die segmente dunker -> auch doof... irgendwie muss es da doch eine andere lösung geben oder??? Guten abend noch
CU schrieb: > Aber jetzt nochmal zu der frequenz, wenn ich da jetzt immer 1ms warte > pro segment, dann macht das mich pro durchlauf eines Taktes ja immer 5 > ms also geht mir da ziemlich die rechenleistung verloren. Nö, Multiplexen ist Standard, kostet unter 1% CPU-Zeit (in C). Du muß ja im Timerinterrupt nur 3 Ausgabebefehle machen, das schafft man schon. Für 5 Digits brauchst Du im SRAM 5 Byte als "Bildspeicher" und ein Byte zum Zählen, welches Digit grad ausgegeben werden soll. Peter
@ CU (Gast) >Aber jetzt nochmal zu der frequenz, wenn ich da jetzt immer 1ms warte >pro segment, dann macht das mich pro durchlauf eines Taktes ja immer 5 >ms also geht mir da ziemlich die rechenleistung verloren. Nöö, wenn man sich mal über das Thema LED-Matrix und Interrupt informiert, ist das alles ganz einfach. >irgendwie muss es da doch eine andere lösung geben oder??? Nicht das Rad neu und viereckig erfinden, NACHLESEN wie es MILLIONEN vor dir gemacht haben. MFG Falk
CU schrieb: > Aber jetzt nochmal zu der frequenz, wenn ich da jetzt immer 1ms warte > pro segment, Musst du nicht. Du musst nur dafür sorgen, dass dein Interrupt alle 1ms kommt. Bei jedem Interrupt schaltest du um 1(!) Stelle weiter. Also nicht alle 5 in einem ISR Durchgang. EDIT: Bisher war ja von Interrupt noch gar nicht die Rede, sehe ich gerade. Sollte es aber. Am einfachsten legt man das Multiplexing in eine ISR.
> wenn du eine LED mit 100Hz und geringem Duty-Cylce pulst und > deinen Kopf bewegst (oder die LED) hast du so einen Perlenschnur- >Eeffekt. Das kann ganz schön unangenehm sein. Sieht man auch ab und zu bei den Rücklichtern und Tagfahrlichtern von neueren Autos. Da werden die LEDs auch gerne mal zu niedrig getaktet.
Karl heinz Buchegger schrieb:
> EDIT: Bisher war ja von Interrupt noch gar nicht die Rede
Wer Multiplexanzeige ohne Interrupts macht, muß extremst Langeweile
haben.
Peter
@ Peter Dannegger (peda) >Wer Multiplexanzeige ohne Interrupts macht, muß extremst Langeweile >haben. In Zeiten der Wirschaftskrise muss auch für Mikrocontroller ABM her ;-) MFG Falk
>Wer Multiplexanzeige ohne Interrupts macht, muß extremst Langeweile >haben. zumal dann die Anzeige ständig flackert, wenn der µC mal mehr, mal weniger zu tun hat (sieht man noch schön bei alten/einfachen TV-Geräten, wenn man eine Taste drückt - da war also offensichtlich auch schon ABM angesagt ;-)
> Sieht man auch ab und zu bei den Rücklichtern und Tagfahrlichtern von > neueren Autos. Da werden die LEDs auch gerne mal zu niedrig getaktet. Es spart eine Spule im Wert von 12 ct. Das ist bei den Preisen von Premium-Autos mit LED Rücklichtern natürlich absolut wichtig, dieses Geld einzusparen, um den Reibach-Koeffizienten hoch genug zu halten. Das kann man problemlos zu Lasten aller anderen Verkehrsteilnehmer machen, schliesslich hat man den TÜV-Prüfer mit hundertausenden EUR bestochen.
wenn auch die Bremslichter zu niedrig getaktet sind, liegt es vielleicht auch an der zu niedrigen "Stotterbremsfrequenz" des Fahrers ;-)
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.