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.