mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4 Dimmerkanaele mit einem Timer bedienen


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich baue gerade einen 4-Kanal Phasenabschnittsdimmer mit einem atmega8. 
Im Nulldurchgang schalten also die Endstufen ein und ein Timer startet. 
Ist die jeweilige Zeit fuer einen Kanal erreicht schaltet er ab.

In einem Versuchsaufbau mit 2 Kanaelen habe ich dafuer einfach die 
beiden Overflow-Interrupts verwendet und es hat wunderbar funktioniert.

Nun frage ich mich wie ich am besten vorgehen sollte mit den 4 Kanaelen, 
da es ja nur die beiden Overflow-Interrupts fuer einen Timer gibt. Ich 
moechte die Zeit gerne moeglichst genau einstellen, d.h. beispielsweise 
20000 Stufen, je nachdem wie viele "Ticks" es zwischen 2 
Nulldurchgaengen gibt. Diese Aufloesung deswegen, da ich die 
Moeglichkeit vorsehen will Korrekturkennlinien zu applizieren und mit 
nur z.B. 256 Stufen wird das alles vermutlich zu grob.

Ich koennte also z.B. die Kanalzeiten aufsteigend sortieren und beim 
erreichen einer Zeit die jeweils naechste setzen. Aber was ist wenn die 
sehr nahe beieinander liegen und bis OCR1x gesetzt ist der Timer schon 
daran vorbei ist?

Oder bei jedem Tick alle Kanaele mit dem Counter vergleichen und 
entsprechend schalten. Nur dann haengt der Prozessor vermutlich die 
meiste Zeit in der ISR.

Wie wird sowas am besten geloest?

Vielen Dank schonmal.

Gruss,
--stefan

Autor: anfaenger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin zwar kein profi, aber ich glaube das wird üblicherweise so gelöst:

man konfiguriert den timer so, dass er 20000mal pro halbwelle einen 
interrupt auslöst. in diesem interrupt wird eine variable hochgezählt 
und bei übereinstimmen mit einem der vorgegebenen werte wird der 
entsprechende ausgang geschaltet.

ds wären allerdings bei 50hz netzfrequenz 2.000.000 interrupts pro 
sekunde. was wohl ein bißchen viel für en prozessor ist. also musst du 
dich entweder mit einer geringeren auflösung abfinden, oder auf jemand 
schlaueren warten ;-)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'anfaenger' hat da vollkommen Recht.
Allerdings ist eine Auflösung von 20.000 Schritten wirklich unnötig. 256 
Schritte sind hingegen zuwenig, das weiß ich aus Erfahrung (-> DMX), 
dabei sieht man nämlich gerade in den Augenwinkeln die Abstufungen beim 
Dimmen.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan (Gast)

>Wie wird sowas am besten geloest?

Ähnlich wie Soft-PWM.

MFG
Falk

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Danke euch fuer die Antworten.
Der Artikel zu Soft-PWM sieht sehr gut aus und hilft weiter.

Danke dafuer.

--stefan

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.