STM32F746G PWM Timer Periode lässt sich nicht ändern TIM2->CCR1=100;

(Firma: Student) #6949451
Lesenswert?

Guten Tag,
Vorweg die DACs des Kontrollers sind bereits verbaut im Gesamtprojekt.
Ich habe zum Testen des System einen extra Code geschrieben bzw.
abgeschrieben.
Quelle:
https://deepbluembedded.com/stm32-change-pwm-duty-cycle-with-dma-for-sine-wave-generation/

Ich möchte einen Sinus generieren und dessen Frequenz über TIM4 ändern.
Dabei ging ich davon aus das TIM4->CCR1=neueFrequenz dies übernimmt.
Allerdings kann ich am Ozi keine Änderung feststellen!
Mit TIM4->ARR=neuerTeiler; funktioniert.
Programmablauf:
Über den USERBUTTON1 wird ein Interrupt ausgelöst welcher die Periode
erhöhen soll.
Ansonsten wird der SINUS über DMA der von TIMER4 gesteuert wird und
TIMER2 der das PWM Signal generiert erzeugt.

Code im Anhang.
Angehängte Dateien:
(Firma: Student) #6949532
Lesenswert?

Ich danke mal für den Tipp habe mich nochmal bissel eingelesen in das 
Thema:
Also der Fehler ist
TIM4->CCR ändern nicht was ich wollte.
ES ist
TIM4->ARR

Aber Jetzt:

Die Frequenz des Sinus wird in eine Drehzahl gewandelt.
Folgendes Problem:

Wenn ich beim Initialisieren des Timer TIM4

htim4.Init.Period = 999;
Einstelle und es Laufen lasse bekomme ich genau mein Berechnendes 
Ergebnis.

Stelle ich nun irgendwo im Code mit
TIM4->ARR=999;
die Frequenz um stimmt das Ergebnis nicht mehr.
#6949545
Lesenswert?

Klaus W. schrieb:
> Weil ARR und Timerfrequenz zusammen die Frequenz des PWM ergeben, und
> CCR/ARR das Tastverhältnis ergibt.

Ist hier aber irrelevant, er braucht keinen Timer mit PWM oder OC.

Henrik G. schrieb:
> Stelle ich nun irgendwo im Code mit
> TIM4->ARR=999;

Das sollte keinen Unterschied machen, hast du das richtige Trigger Event 
gewählt? Das sollte Update sein.
(Firma: Student) #6950477
Lesenswert?

Kevin M. schrieb:
> Klaus W. schrieb:
>> Weil ARR und Timerfrequenz zusammen die Frequenz des PWM ergeben, und
>> CCR/ARR das Tastverhältnis ergibt.
>
> Ist hier aber irrelevant, er braucht keinen Timer mit PWM oder OC.
>
> Henrik G. schrieb:
>> Stelle ich nun irgendwo im Code mit
>> TIM4->ARR=999;
>
> Das sollte keinen Unterschied machen, hast du das richtige Trigger Event
> gewählt? Das sollte Update sein.

Hat geklappt!
Vielen dank!

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