C Lauflicht mit nach gedimmten LED´s

... Genau das selbe

Du castest das Resultat, gerechnet wird wahrscheinlich in int. Da d vom Typ uint ist, ändert sich nichts.

Interessant wäre: caste einmal die einzelnen Operanden mit uint8_t


Ich habe das mal im Simulator gestestet. Alle Variable vom Typ uint8_t.
d hat zum Schluss den Wert 247, also 8bit Überlauf.



CodeBox C
   a = 5;
   b = 14;
   
   d = a-b;  // 5 - 14 = - 9
 
Zuletzt bearbeitet:
Wie castet man denn einen Operanden? Habe ich noch nie gesehen?
 
Vor jeden Operanden in Klammern den Typ.

Aber wie schon geschrieben, im Simulator erhalte ich ganz normal einen 8bit Überlauf.
Wenn die Differenz kleiner 0 ergibt, dürfte dein oberer Code nicht funktionieren?!
 
Das ist es ja... Es funktioniert aber...
 
Ich weiß dazu im Moment auch keine Antwort. :pcguru:

Ich mach mir dazu später nochmal Gedanken.
 
Und zum Casting meinst du - >



CodeBox C
 Uint8_t(-)? 
 
Es ist Freitag.
Die habe ich ja schon alle einzelnd gecastet... Funktioniert trotzdem.

Vielleicht, fällt dir irgendwann noch mal was dazu ein.
 
Vielleicht, fällt dir irgendwann noch mal was dazu ein.

Es könnte an folgendem liegen ...

Du bildest die Differenz d in Abhängigkeit der Rotation, also der Richtung. Das könnte jetzt so gut passen, dass der Effekt (Schweif hinter der aktiven LED) weiter vorhanden ist. Wenn es einen 8bit Überlauf gibt, ist die Differenz d hoch. Alle LEDs mit dieser Differenz (255, 254 ...) haben dann die Helligkeit 2. Das wären dann ggf. alle LEDs vor der hellsten LED, die sowieso 2 haben sollen.

Um das besser nachvollziehen zu können, müsste ich den anderen Code auch haben ... aber vielleicht kannst du das ja selber mal prüfen.
 
Das sieht aus wie ein "Schweif".

Das könnte man ja vielleicht auch so lösen:

Eine Funktion setzt den maximalen Helligkeitswert für einen bestimmten Index.
Eine weitere Funktion (siehe unten) kümmert sich um Dimmen der anderen Helligkeitswerte ausserhalb des Index.

(So etwas ähnliches hatte ich mal bei einem FFT Spektrum mit Peek Hold Werten gemacht, die sich vom Maximum nach einer Wartezeit langsam wieder zum aktuellen Wert bewegt haben)
...
Ich hab quasi den Index mit drin gehabt...
Sollte der Effekt nicht eher so sein, daß man quasi eine LED hin und herwandernd (sagen wir 2 Schritte pro Sekunde) voll an hat, und alle anderen LEDs dimmen je für sich selbst kontinuierlich runter?

Quick'nDirty zählt man Timerüberläufe, bei jedem davon werden alle PWM-Vorgabewerte dekrementiert bis sie Null sind, nur der aktive Kanal wird auf max gesetzt. Läuft der Überlaufszähler über, wandert der aktive Kanal eins weiter oder zurück.
[fehlender Highfive-Smiley]
 
Sollte der Effekt nicht eher so sein, daß man quasi eine LED hin und herwandernd (sagen wir 2 Schritte pro Sekunde) voll an hat, und alle anderen LEDs dimmen je für sich selbst kontinuierlich runter?

Quick'nDirty zählt man Timerüberläufe, bei jedem davon werden alle PWM-Vorgabewerte dekrementiert bis sie Null sind, nur der aktive Kanal wird auf max gesetzt. Läuft der Überlaufszähler über, wandert der aktive Kanal eins weiter oder zurück.

Ja, nach dem Video von Tommy sieht das so aus. Im Prinzip wie lang nachleuchtende Glühbirnen. :D
Einen simplen Code hatte ich dazu auch schon mal gepostet.

Im Moment hat Janiiix ja eine andere Lösung. Das mit "kontinuierlich runterdimmen" finde ich besser.
 
  • Like
Reaktionen: Dirk

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)