Forum: Mikrocontroller und Digitale Elektronik Problem mit dem Timer (Seconde)


von Amadou B. (amadu)



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?

von Stefan F. (Gast)


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.

von my2ct (Gast)


Lesenswert?

Amadou B. schrieb:
> Dafür habe ich das Programm im Anhang geschrieben ...

Mein Compiler sagt, dass er code.JPG nicht kompilieren kann :-(

von another2ct (Gast)


Lesenswert?

my2ct schrieb:
> Amadou B. schrieb:
>> Dafür habe ich das Programm im Anhang geschrieben ...
>
> Mein Compiler sagt, dass er code.JPG nicht kompilieren kann :-(

Hängt wohl daran, dass der Bediener deines Compiles dessen 
Funktionsweise nicht versteht ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.