Forum: Mikrocontroller und Digitale Elektronik STM32F4 / TIMER Clock Source


von Michael W. (Gast)


Angehängte Dateien:

Lesenswert?

Ich verwende den TIMER2 meines STM32F4 DiscoveryBoards, verstehe aber 
nicht, was im Reference Manual mit CK_INT als "interne Clock" Quelle 
gemeint ist.

Ich habe einen SYSCLK=168 MHz (das stimmt 100%)
Danach

/* PCLK1 = HCLK / 4*/
    RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;

(da hänget Timer 2 dran)

also 42MHz

Der Timer verhält sich nun so, als ob er mit 84MHz getaktet würde (d.h. 
das ist die Clock vor dem Timer Prescaler): Er läuft also um einen 
Faktor 2 schneller, als ich laut Datenblatt erwarten würde.

Der einzige Hinweis im Reference Manual:

if (APBx presc = 1x1
else x2


?????
?????

==> siehe angefügten Snapshot

Sehr aussagekräfig ist das ja nicht grade. Wird da stillschweigend noch 
mit 2 multiplziert? Oder habe ich etwas anderes übersehen? Ich habe nun 
schon fast einen Tag damit vertan, dies herauszufinden - ich komme nicht 
drauf.

Vielleicht kann dies jemand "im Stehen" beantworten...

Danke,
Michael

von Uwe B. (derexponent)


Lesenswert?

Hi Michael W,

lies mal die Bedingung vor dem Timer Block

if(APBx presc=1)
  x1
else
  x2


hier hast du deinen Faktor zwei
(weil dein Prescaler auf 4 steht)

Gruss Uwe

von Michael W. (Gast)


Lesenswert?

ja, das ist mir jetzt auch klar:

Aufgrund des fehlenden Blanks habe ich gelesen ** bitte nicht lachen **:

if (APBx == 1x1  und ich dachte es ist das Bitmuster 1x1 gemeint, oder 
eine Schreibweise 0x01 mit Tippfehler und dann habe ich auch nicht nicht 
gewusst wo der if-Teil hin ist, da ja dann nur else dort steht.

Manchmal hat man schon ein ordentliches Brett vorm Kopf...peinlich. Was 
so ein kleiner Druckfehler ausmacht...

Danke !

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.