STM32F0 timer čuden

Tu bo govora o vseh mogočih mikrokontrolerjih ne glede na tip ali zgradbo

Moderator: tilz0R

STM32F0 timer čuden

OdgovorNapisal/-a s54mtb » 22 Dec 2016, 12:11

Interni RC (verjetno ni najbolj točen, zato niso okrogle cifre). pclk = 48MHz. Z nastavitavami timerja 14, ki proži le IRQ:

Koda: Izberi vse
  htim14.Init.Prescaler = 8;
  htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim14.Init.Period = 5320;

v irq handlerju je samo togglanje enega pina, ki da s temi nastavitvami izhodno frekvenco 500 Hz, oz. pulz širine točno 1,000ms.

potem pa zamenjam (prescaler pol manjši, perioda dvakrat višja):

Koda: Izberi vse
  htim14.Init.Prescaler = 4;
  htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim14.Init.Period = 10640;


in bi moralo biti isto, pa ni. Dobim 1,111ms, oz frekvenco 450Hz.

Prioriteta ne spremeni stanja
Koda: Izberi vse
HAL_NVIC_SetPriority(TIM14_IRQn, 0, 0);


Ali HAL handlerji delajo kak overhead in se znotraj ISR timer kaj ustavlja ?
s54mtb
 
Prispevkov: 8410
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1109 krat
Prejel zahvalo: 2713 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 84

Re: STM32F0 timer čuden

OdgovorNapisal/-a Sigi » 22 Dec 2016, 14:23

(48Mhz / 9)/5320 = 1002,5Hz
(48MHz / 5)/10640 = 902,2Hz
lp Žiga
Sigi
 
Prispevkov: 146
Pridružen: 23 Jan 2015, 00:57
Kraj: Kamnik
Zahvalil se je: 47 krat
Prejel zahvalo: 54 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 13

Re: STM32F0 timer čuden

OdgovorNapisal/-a tilz0R » 22 Dec 2016, 15:36

Frekvenca ticka gre tako:

Frekvenca = vhodna frekvenca / (PrescalerRegisterValue + 1)

Torej ti imaš prescaler enkrat 9, enkrat pa 5, kot je predhodnik omenil.

Isto je pri periodi, šteje od 0 in zato ti nardi prvič 5321 ciklov, drugič 10641, kar ni x2.

Prescalerje daj na 7 in 3, ter periodo nastavi na 5319 in 10639, potem pa bo isto.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1514
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 196 krat
Prejel zahvalo: 372 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: STM32F0 timer čuden

OdgovorNapisal/-a s54mtb » 22 Dec 2016, 15:42

Vse jasno. Sem zafarnal. Tipicna zacetniska napaka.
s54mtb
 
Prispevkov: 8410
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1109 krat
Prejel zahvalo: 2713 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 84


Vrni se na Hardware

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost