Ich bin gerade ein bissle am Verzweifeln mit meinem OC Timer auf meinem
STM32F103. Ich bekomme einfach kein Compare hin.
Der µC läuft mit dem internen Quarz (8Mhz HSI, PLL, Multi 16) auf 64Mhz.
APB1 Perhiph auf 32Mhz und die APB1 Timer auf 64Mhz.
Ich geb mal die ClockInit:
Wie gesagt, kein Compare, ich bekomme das Ding einfach nicht zum laufen
- hach waren da die AVR Zeiten noch schön, da lief sowas in 2 Minuten.
:-(
Ich danke für eine Hilfen.
DraconiX schrieb:> HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);DraconiX schrieb:> HAL_TIM_OC_Start(&htim2,TIM_CHANNEL_2);
???
Übrigens gibt es immer noch AVR wenn auch unter falschem Namen ;)
pegel schrieb:> DraconiX schrieb:>> HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);>> DraconiX schrieb:>> HAL_TIM_OC_Start(&htim2,TIM_CHANNEL_2);>> ???>> Übrigens gibt es immer noch AVR wenn auch unter falschem Namen ;)
Ahhh... danke! Aber das war es leider auch nicht, auch das Umstellen des
Channel auf 1 beim Start bringt weder den Interrupt raus noch den Pin
zum wackeln :-/
Jaja, der AVR ist auch immernoch mein Hauptarbeitspferd :-D
pegel schrieb:> Kannst noch versuchen Period und Pulse zu vergrössern. Mal 10 oder> so,> vielleicht kommen die Int zu schnell.>> Sonst mein üblicher Rat, CubeMX.
Ja das Zeugs ist ja von CubeMX "zusammengestellt" - leider gibt Cube ja
keine Startzuweisungen. Bzw, darf man die sich dann aus der HAL-Lib
zusammensuchen.
Matthias S. schrieb:> Bin leider kein HAL Spezi, aber unter SPL muss man den Timer dann> auch> noch starten:TIM_Cmd(TIM2, ENABLE);
Ja unter SPL wäre das deutlich einfacher :-D Aber ich sehe das man sich
dabei viel zu sehr auf die Libs verlässt, die Ref-Manual und das
Datenblatt hält sich da eh schon arg bedeckt wie die Interrupts
angesprochen werden, zumindest konnte ich in den drei verschiedenen
Blättern nichts finden.
Ich hab nun das Problem lösen können, um den Timmer mit Interrupt zu
starten braucht es:
1
HAL_TIM_OC_Start_IT(&htim2,TIM_CHANNEL_1);
2
// Man beachte:--^^
3
4
// Und um dann noch den Pin zu nutzen braucht man extra:
5
HAL_TIM_OC_Start(&htim2,TIM_CHANNEL_1);
Das ist alles irgendwie ein bissle verkompliziert gemacht.
Aber dafür sind in der HAL Lib so ziemlich für jede HW Beispiele
enthalten.
Ein Blick in die jeweilige main.c hat mir bis jetzt eigentlich immer
Erleuchtung gebracht.
C. W. schrieb:> Der Timer bekommt kein Clocksource
Ja doch, hier - Die Source ist beim F103 ja der APB1, die clock muss nur
zugeschaltet werden, mach ich ja vor der Initilisierung, sonst würde sie
ja nicht mal die Register übernehmen - Wie gesagt, der Interrupt und der
Outpin gehen ja nun.
DraconiX schrieb:> __HAL_RCC_TIM2_CLK_ENABLE();pegel schrieb:> Aber dafür sind in der HAL Lib so ziemlich für jede HW Beispiele> enthalten.> Ein Blick in die jeweilige main.c hat mir bis jetzt eigentlich immer> Erleuchtung gebracht.
Wo findest du die HW Beispiele?!
pegel schrieb:> Für den F103 z.B. hier>> SW4STM32/firmwares/STM32Cube_FW_F1_V1.4.0/Projects/STM32F103RB-Nucleo/Ex> amples/TIM/TIM_TimeBase/Src/main.c>> und andere.
Oh Danke! Da schaue ich mal!