4 Dimmerkanaele mit einem Timer bedienen

Gast #1101131
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
Gast
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 ;-)
Gast
'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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.