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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
