Hallo zusammen!
Ich möchte mal fragen, ob mir jemand bei meinem "Dimmerproblem" in BASCOM helfen kann.
Scheinbar bekomme ich das Timing nicht geregelt.
Eine Nullspannungserkennung habe ich eingebaut und diese steuert den INT0.
Das klappt auch hervorragend und soll als Startsignal für den Timer2 sein.
Da die Netzspannung 50Hz besitzt, dauert logischerweise eine Sinuswelle 20ms.
Da man aber beim Phasenanschnitt beide Halbwellen gleichmäßig anschneiden muss, benötige ich also eine Timereinstellung für innerhalb 10ms.
Ich hatte mir gedacht, den Timer2 als PWM zu benuten und das dieser OCR2 dann den Optotriac zündet.
Hardwaretechnisch ist schon alles aufgebaut und fertig gestellt.
Das kommt daher, dass ich eigentlich die Leuchte (Glühlampen) nur schalten wollte........ mir dann aber doch überlegt habe, einen Dimmer zu verwenden.
Meine Frage ist nun:
Wie bekomme ich Timer2 so eingestellt, dass er genau im geforderten Zeitfenster vom 10ms arbeitet?
Ich habe zwar schon einiges ausprobiert, aber letztlich flackern die Glühlampen immer noch.
Scheinbar benötige ich mal einen Denkanstoß, sonst drehe ich mich hier nur im Kreis.
Mein Ansatz war eigentlich immer:
256bit x (64 Prescaler / 1000000 Hz) = 16,384ms
Dadurch benötige ich also nur 157 bit für 10ms. OK, das ist etwas länger als die "echten" 156,25.... Da aber der Timer2 durch den INT0 wieder neu gestartet wird, dürfte es doch keine Probleme geben. Schließlich wird die komplette Halbwelle durchgeschaltet und die Lampen haben maximale Helligkeit.
Erwähnen muss ich noch, dass die Änderung des "Dimmwertes" mittels einer RC5-Fernbedienung vorgenommen wird.
Programmiertechnisch ist das kein Problem, allerdings bremst der TSOP mein Programm doch um einige Zeit aus.... und das muss mit berücksichtigt werden.
Solange ich mit "On INT0" für die Lastansteuerung arbeite, scheint der Empfang das Timing nicht zu stören.
Ich stelle mal zwei kleine Bilder von der Messung mit meinem Scope mit ein.
Das eine Bild zeigt das Signal am INT0 .
Beim anderen Bild habe ich mal einen Ausgangsport durch den INT0 togglen lassen.
Hat vielleicht jemand eine Idee, wie ich den Timer2 einrichte..... ohne das die Lampe wieder flackert?
Grüße,
Cassio !
PS. Ach so, es muss leider der Timer2 des ATMega8 sein, weil der Timer1 bereits als PWM verwendet wird.
Ich möchte mal fragen, ob mir jemand bei meinem "Dimmerproblem" in BASCOM helfen kann.
Scheinbar bekomme ich das Timing nicht geregelt.
Eine Nullspannungserkennung habe ich eingebaut und diese steuert den INT0.
Das klappt auch hervorragend und soll als Startsignal für den Timer2 sein.
Da die Netzspannung 50Hz besitzt, dauert logischerweise eine Sinuswelle 20ms.
Da man aber beim Phasenanschnitt beide Halbwellen gleichmäßig anschneiden muss, benötige ich also eine Timereinstellung für innerhalb 10ms.
Ich hatte mir gedacht, den Timer2 als PWM zu benuten und das dieser OCR2 dann den Optotriac zündet.
Hardwaretechnisch ist schon alles aufgebaut und fertig gestellt.
Das kommt daher, dass ich eigentlich die Leuchte (Glühlampen) nur schalten wollte........ mir dann aber doch überlegt habe, einen Dimmer zu verwenden.
Meine Frage ist nun:
Wie bekomme ich Timer2 so eingestellt, dass er genau im geforderten Zeitfenster vom 10ms arbeitet?
Ich habe zwar schon einiges ausprobiert, aber letztlich flackern die Glühlampen immer noch.
Scheinbar benötige ich mal einen Denkanstoß, sonst drehe ich mich hier nur im Kreis.
Mein Ansatz war eigentlich immer:
256bit x (64 Prescaler / 1000000 Hz) = 16,384ms
Dadurch benötige ich also nur 157 bit für 10ms. OK, das ist etwas länger als die "echten" 156,25.... Da aber der Timer2 durch den INT0 wieder neu gestartet wird, dürfte es doch keine Probleme geben. Schließlich wird die komplette Halbwelle durchgeschaltet und die Lampen haben maximale Helligkeit.
Erwähnen muss ich noch, dass die Änderung des "Dimmwertes" mittels einer RC5-Fernbedienung vorgenommen wird.
Programmiertechnisch ist das kein Problem, allerdings bremst der TSOP mein Programm doch um einige Zeit aus.... und das muss mit berücksichtigt werden.
Solange ich mit "On INT0" für die Lastansteuerung arbeite, scheint der Empfang das Timing nicht zu stören.
Ich stelle mal zwei kleine Bilder von der Messung mit meinem Scope mit ein.
Das eine Bild zeigt das Signal am INT0 .
Beim anderen Bild habe ich mal einen Ausgangsport durch den INT0 togglen lassen.
Hat vielleicht jemand eine Idee, wie ich den Timer2 einrichte..... ohne das die Lampe wieder flackert?
Grüße,
Cassio !
PS. Ach so, es muss leider der Timer2 des ATMega8 sein, weil der Timer1 bereits als PWM verwendet wird.