Forum: Mikrocontroller und Digitale Elektronik LED-Fading Artikel: Formelzeichen


von Johannes (menschenskind)


Lesenswert?

hallo

In dem µC.net-Artikel LED-Fading
steht bei der Formel leider keine Erläuterung zu rx und ry.
Es steht nur "im Bereich von 0 bis r-1" daraus werde ich allerdings 
nicht schlau. Was soll man da einsetzen, die jeweiligen Maximalwerte von 
x bzw. y?

Wenn man genügend Rechenleistung im Controller hat, könnte man die 
LookUpTable doch weglassen und sich die Werte gleich live berechnen 
lassen, oder?

Danke

von c-hater (Gast)


Lesenswert?

Johannes H. schrieb:

> Wenn man genügend Rechenleistung im Controller hat, könnte man die
> LookUpTable doch weglassen und sich die Werte gleich live berechnen
> lassen, oder?

Natürlich. Bloß ist es völlig abstruser Schwachsinn, ein und dieselbe 
komplexe Berechnung wieder und wieder durchzuführen nur weil der 
Controller es kann.

Wenn er so viel freie Rechenzeit hat, ist er für die Anwendung schlicht 
massiv überdimensioniert und damit auch viel zu teuer.

Scheiß-unfähiger Entwickler am Werk.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Die r sind einfach Skalierungsfaktoren, um den Eingangswertebereich und 
den Ausgangswertebereich anzupassen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Johannes H. schrieb:
> Wenn man genügend Rechenleistung im Controller hat, könnte man die
> LookUpTable doch weglassen und sich die Werte gleich live berechnen
> lassen, oder?

 Immer wieder dieser Blödsinn mit LED-Fading.
 Dient alles nur dazu, dass irgendwelche möchtegern Experten zeigen,
 wieviel sie etwas von Logarithmen verstehen.
 10 bit (1023 Stufen) ist schon zu viel, 7 bit ist mehr als genug.
 Und ich meine 127 echte 10-bit Werte, da du beim rechnen z.B:
  26 mal die 1 hast, 14 mal die 2, 11 mal die 3 usw.

 Um 127 verschiedene Werte durchzufahren bei 0,1s Dauer pro Wert
 braucht man satte 12,7s. Bei 0,5s pro Wert dauert es schon über
 eine Minute.
 Wer dimmt denn so lange ?

 Mein Ratschlag ist:
 Vergiss die ganze Rechnerei, nimm eine Tabelle mit 3*128Byt und
 es ist gut.

 EDIT:
 2*128 für dimmen.
 1*128 für 128 verschiedene RGB Farben.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Marc Vesely schrieb:

>  Immer wieder dieser Blödsinn mit LED-Fading.
>  Dient alles nur dazu, dass irgendwelche möchtegern Experten zeigen,
>  wieviel sie etwas von Logarithmen verstehen.

Nein, das kann wohl nicht der einzige Grund sein...

>  10 bit (1023 Stufen) ist schon zu viel, 7 bit ist mehr als genug.
>  Und ich meine 127 echte 10-bit Werte, da du beim rechnen z.B:
>   26 mal die 1 hast, 14 mal die 2, 11 mal die 3 usw.

???

Du hast definitiv das ganze Prinzip nicht begriffen. Es kommt garnicht 
darauf an, jeden möglichen Wert der exponentiellen Kurve darstellen zu 
können oder zu wollen (genau deswegen können das reale Implementierungen 
normalerweise auch garnicht).

Es geht vielmehr darum, eine lineare Funktion von 0..Endwert auf eine 
Exponentialfunktion von 0..Endwert zu mappen, um dem Auge einen linearen 
Anstieg der Helligkeit zu vermitteln, wenn die Ansteuerung linear 
erfolgt. Nötig ist das, weil das Auge eben nicht linear arbeitet, 
sondern eine (grob) logarithmische Abhängigkeit bei der 
Helligkeitsempfindung hat.

Die Notwendigkeit für eine höhere Auflöung der PWM resultiert aus dem 
Verlauf der Kurve. Die ist nämlich so gestaltet, daß im unteren Bereich 
der Helligkeiten die Werte sehr dicht beeinander liegen, so dicht, daß 
sie z.B. mit nur acht Bit Auflösung bei Gamma 2,2 bis zum Wert 15 immer 
nur Null rauskommt, die Scheiß-LED also einfach mal komplett dunkel 
bleibt.

>  Um 127 verschiedene Werte durchzufahren bei 0,1s Dauer pro Wert
>  braucht man satte 12,7s

Was ist das denn für eine gequirlte Kacke? Wer sagt, daß man 100ms für 
einen Schritt braucht? Meine 17Bit-PWM (bei Gamma 2,2 die 
kleinstmögliche Auflösung, die bei 8Bit-Helligkeitewerten auch nach dem 
Mapping auf die Exponentialkurve noch jedem Wert eine andere Ansteuerung 
zuordnet) läuft auf einem ATtiny 2313, steuert 16 LEDs an und erreicht 
bei der kleinstmöglichen von Null verschiedenen Ansteuerung 1 den 
kleinstmöglichen PWM-Duty von 1:2^17. Die Framerate ist dabei 28,125Hz 
(aber mit einem Trick zum Glück wirklich nur für diese kleinste 
Helligkeit zu 100% optisch wirksam), aber die mögliche Updaterate für 
eine Darstellung ohne Blitzer ist wirklich nur 28,125Hz. Wollte ich 
durch jeden der verfügbaren 256 Helligkeitswerte faden, würde es also 
irgendwas bei 8 oder 9s dauern.

Das will ich aber garnicht und das muß ich auch nicht. Denn ich kann 
natürlich auch nur z.B. jeden 8. Wert linear durchlaufen, die 17Bit-PWM 
wird das dank der Abbildung auf die physiologische Gamma-Kurve ebenfalls 
als lineare Helligkeitsänderung darstellen können und dafür dann 
ungefähr eine Sekunde brauchen, was üblicherweise als recht angenehm 
empfunden wird.

Schon das konnte man mit einer 8Bit-PWM nicht mehr "stufenlos" 
realisieren. Richtig interessant wird es aber erst, wenn man die als 
angenehm empfundene Fadingdauer von etwa einer Sekunde gelegentlich mit 
einer geringeren (empfundenen!) Endhelligkeit haben will, z.B. der Häfte 
oder gar nur einem Viertel, weil ich das Licht z.B. nicht deshalb 
anschalte, weil ich ein Buck lesen will, sondern nur, um den nächtlichen 
Weg zum Klo ausreichend zu beleuchten...

Bist du wenigstens in der Lage, durchzurechnen, was dann das Ergebnis 
wäre? Dann bekommst du eine Vorstellung, wie Scheiße DAS aussieht mit 
8Bit-PWM.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

c-hater schrieb:
> Bist du wenigstens in der Lage, durchzurechnen, was dann das Ergebnis
> wäre? Dann bekommst du eine Vorstellung, wie Scheiße DAS aussieht mit
> 8Bit-PWM.

 Ich nicht, aber mein PC rechnet das für mich.
 Und ich habe von 10bit PWM geredet.

c-hater schrieb:
> Marc Vesely schrieb:
>>  10 bit (1023 Stufen) ist schon zu viel, 7 bit ist mehr als genug.
>>  Und ich meine 127 echte 10-bit Werte, da du beim rechnen z.B:
>>   26 mal die 1 hast, 14 mal die 2, 11 mal die 3 usw.
>
> ???

c-hater schrieb:
> Die Notwendigkeit für eine höhere Auflöung der PWM resultiert aus dem
> Verlauf der Kurve. Die ist nämlich so gestaltet, daß im unteren Bereich
> der Helligkeiten die Werte sehr dicht beeinander liegen, so dicht, daß
> sie z.B. mit nur acht Bit Auflösung bei Gamma 2,2 bis zum Wert 15 immer
> nur Null rauskommt, die Scheiß-LED also einfach mal komplett dunkel
> bleibt.

 Wenn du schon abschreibst, dann versuche mal wenigstens das, was du
 abschreibst, zu verstehen.
 Dasselbe, wo dein Fragezeichen steht, wiederholst du weiter unten, nur
 eben von irgendwo abgeschrieben, ohne es wirklich zu verstehen.

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.