Problem mit dem Timer (Seconde)

OP #5964974
Lesenswert?

Hallo, ich habe ein problem mit der Einstellung des Timer 1 mit dem 
Nucleo Board. Laut der Technischen Daten (im Anhang) läuft der Prozessor 
mit 84 MHz und ich möchte mit dem Timer 1 eine LED toggeln (pro 
Sekunde). Dafür habe ich das Programm im Anhang geschrieben aber die LED 
leuchtet etwa 6 Sekunden und dann aus für 6 Sekunden. Wenn ich dem 
PSC-Register (Prescaler) den wert (1600-1) zuweise (im Fall dass der 
Prozessor 16MHz ist) dann geht die LED an und aus alle Sekunden. Der 
Prozessor hat aber ein Takt von 84MHz also wie ich verstehe sollte im 
PSC-Register 8400-1 stehen wenn der ARR-Resgister (Autoreload Register) 
den wert 10000-1 hat.

Könntet ihr mir sagen, wo mein fehler liegt?
Angehängte Dateien:
Gast #5964981
Lesenswert?

Amadou B. schrieb:
> Der Prozessor hat aber ein Takt von 84MHz

Nein, er läuft standardmäßig mit 16MHz. Lies mal das ganze Kapitel 6 vom 
Referenzhandbuch durch, da steht drin, wie du die Taktfrequenz mittels 
PLL heraus setzten kannst.

https://www.st.com/content/ccc/resource/technical/document/reference_manual/5d/b1/ef/b2/a1/66/40/80/DM00096844.pdf/files/DM00096844.pdf/jcr:content/translations/en.DM00096844.pdf

Ich kenne mich mit dem STM32F4 nicht aus, aber bei anderen STM ist die 
Vorgehensweise üblicherweise diese:

1) Auf den HSI als Taktquelle umschalten *
2) Warte, bis der Schalter umgelegt wurde
3) PLL aus schalten *
4) Flash Latenz (wait states) passend zur neuen Taktfrequenz einstellen
5) Pll Multiplikator und alle Prescaler einstellen
6) PLL einschalten
7) Warte, bis die PLL betriebsbereit (eingependelt)
8) PLL als Taktquelle auswählen

*) das ist der Normalzustand nach Reset, aber der Debugger kann das 
ändern. Während die PLL eingeschaltet ist, lässt sie sich nicht 
umkonfigurieren.

Beachte, dass der Flash Speicher und die Peripherie (zum Teil) nicht mit 
der maximalen Frequenz arbeiten kann.

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