mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RGB Farbwechsel Verbesserungsvorschläge


Autor: Daniel L. (grorkef)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bastle derzeit ein bisschen für ein Projekt das ich dämnächst in 
Angriff nehmen will und brauche dafür ein paar Funktionen u.A. auch ein 
RGB Farbwechsel nun habe ich mich mit meinem Wissen an µC Programmierung 
mal hingesetzt und was programmiert.

Muss sagen es funktioniert gut aber es ist sicherlich nicht der beste 
Weg das umzusetzten :)

Ich hoffe auf eure Kritik und Verbesserungsvorschläge zu meinem Code.

MFG Daniel L.

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dir 8 Bit pro Farbe reichen und der eingesetzte AVR genug Timer und 
PWM Kanäle bietet lässt sich ein Großteil per Hardware-PWM erledigen. Du 
brauchst dann nur noch bei Bedarf neue Werte für R,G,B in die Register 
laden und der Rest läuft im Hintergrund.

Autor: Peter N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss zwar nicht welchen AVR du benutzt aber vielleicht wäre es eine 
Möglichkeit für dich per Hardware zu lösen. Du musst dann nur noch die 
richtigen Timer Einstellungen machen und kannst die RGB-Werte direkt ins 
Register schreiben.

Autor: Daniel L. (grorkef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso hm das hätte ich in das C-File vielleicht rein schreiben können 
ist ein ATmega8 :)

Meins Wissens hat der nur 2 Hardware PWM Ausgänge?

Autor: G4st (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der hat 3.

Autor: Daniel L. (grorkef)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hab mich heute mal an Hardware PWM gewagt, doch irgendwie kommm ich da 
nicht weiter.

Allerdings funktioniert das so wie ich mir das gedacht hatte nicht und 
mir ist aufgefallen das der Timer 2 bei OCR2 = 0 immer noch glimmt 
obwohl er auf 0 ist.

Ich hab im Anhang mal mein Ansatz gepostet, der jedoch nicht 
funktioniert hoffe ihr könnt mir sagen wo mein Denkfehler dabei ist :)

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der zählt in jedem Durchlauf von 0 bis 255 und unterteilt damit eine 
Periode in 256 Zeitabschnitte. Das OCR kann ebenfalls 256 Werte 
annehmen, was ausreicht, um die Zustände von "Ein Takt ist an" bis "alle 
256 Takte sind an" abzubilden. Für den Zustand "alle Takte sind aus" 
wäre aber noch ein 257. Zustand nötig.

Es ist auch in den AVR-Datenblättern dokumentiert, daß bei positiver 
Logik am OCR-Ausgang (einschalten bei Überlauf, ausschalten bei 
OCR-Match), der OCR-Wert 0 zu einem kurzen Impuls am Ausgang führt.

Abhilfe kannst Du z.B. dadurch schaffen, daß Du den OCR mit negativer 
Logik arbeiten läßt, also aus bei Überlauf, ein bei OCR-Match. Den 
OCR-Wert mußt DU dann natürlich auch umdrehen, statt x also 255-x. 
Dadurch verschiebst Du den Spike ans helle Ende der Skala, an dem das 
menschliche Auge weit weniger empfindlich ist.

Autor: Daniel L. (grorkef)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok hab meine Fehler gefunden und hab auch das PWM Invertiert damit OCR2 
bei 0 nicht glimmt :)

Achja und die IF abfragen hatten alle ein = zu wenig deswegen gings auch 
nicht :)

Allerdings stellt sich mir die frage ob das wirklich besser ist als die 
Software Lösung :)

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.