Problem mit dem Timer (Seconde)

OP #5964974
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
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.
Gast
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 ...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.