Frage zu "Soft-PWM" Artikel

Gast #2484487
Lesenswert?

Nabend,

Ich hab mich grade mal mit dem Soft-PWM Artikel befasst und hab da 
mal ne bescheidene Frage:
Bei Versuch1 und Versuch2 wird in der Interrupt-Routine ständig das 
Register OCR1A mit
1
 OCR1A += (uint16_t)T_PWM;
Aufaddiert. Warum?
Warum nicht einfach durchlaufen lassen? Verlängert sich dadurch nicht 
ständig die Periodendauer oder verstehe ich da was falsch?
Ich hoffe ihr könnt mir die Weisheit bringen :)
Gruss,
Flo
#2484716
Lesenswert?

FlorianV schrieb:

> Bei Versuch1 und Versuch2 wird in der Interrupt-Routine ständig das
> Register OCR1A mit
>
1
 OCR1A += (uint16_t)T_PWM;
> Aufaddiert. Warum?

Das ist ein verkappter CTC Modus, der benutzt wurde, weil im letzten 
Beispiel dann eben nicht mehr mit einem konstanten Increment gearbeitet 
wird, sondern dieses variabel gestaltet wird.

Letzten Endes geht es darum, die ISR alle x Taktzyklen aufrufen zu 
lassen, wobei x nicht von den Vorteilern des Timers bzw seiner Bitbreite 
abhängen soll.

> Warum nicht einfach durchlaufen lassen? Verlängert sich dadurch nicht
> ständig die Periodendauer oder verstehe ich da was falsch?

Es geht gar nicht im die Periodendauer des Timers. Es geht darum, mit 
dem Timer x Takte abzählen zu lassen und dann wieder in der ISR zu 
landen.
Gast #2485229
Lesenswert?

Hallo Peter,
Wiedermal ne top Antwort, danke dafür.

>Das ist ein verkappter CTC Modus,...

Dachte ich auch, das hatte mich verwirrt. Ist es aber nicht, CTC Mode 
ist nicht aktiv. Macht so aber auch mehr Sinn, habs jetzt kapiert :) So 
wird alle x couter-takte der Interrupt ausgelöst (bei mir ca. 300).
Aber bei T_PWM ~ 300 würde der OCR1A nach 218 Interrups ja überlaufen 
und wieder bei 0 anfangen oder addiert sich der Rest dann drauf?

Ist nur ne verständnis Frage, würde man ja am Ausgang kaum bemerken :) 
Ich werds mal aufbauen und mit dem Osziloskop nachmessen obs nicht doch 
einen Sprung in der Pulsdauer gibt...
Elektronik macht Spaß :D

Gruss,
Flo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren