mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Perfekte Zeiten einhalten


Autor: CU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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")

Autor: Dussel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
100Hz * Digitanzahl

Nachleuchten ist meistens ein SW-Fehler oder Transistoren in 
Emitterschaltung. Daher besser in Kollektorschaltung oder FETs.


Peter

Autor: CU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ;)

Autor: Reinhard R. (reirawb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich werds mir nacher mal durchrechnen ...
Vorher durchrechnen wäre auch eine Möglichkeit   :-/

Autor: CU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ;)

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das hat nix mit Layout zu tun, sondern etwas mit dem Timing beim 
ansteuern der Segmente und Digits ....

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: CU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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 ;-)

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn auch die Bremslichter zu niedrig getaktet sind, liegt es vielleicht 
auch an der zu niedrigen "Stotterbremsfrequenz" des Fahrers ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.