Cortex Timer Kesmesi Zamanı Hesaplaması

Başlatan muhittin_kaplan, 07 Eylül 2013, 18:49:35

muhittin_kaplan

Formülü Nedir ?

TIM_TBInitStruct.TIM_Prescaler = 4199; // PSC
TIM_TBInitStruct.TIM_Period =1; // ARR

bir hesaplayıcı yapacağım Yanlış Yapmayalım.

mistek


Kesme oluşma süresi = (PSC+1)*(ARR+1) / APB
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

muhittin_kaplan

#2
Sonuç Nedir Saniye mi ?

mesaj birleştirme:: 07 Eylül 2013, 19:16:43

Tamam Sonuçları Aldım. Sağolun.

muhittin_kaplan

#3
Bu ARR ve PSC nin kısıtlamaları nedir ?
istediğim degerleri verebiliyormuyum _


mesaj birleştirme:: 08 Eylül 2013, 01:31:18

PSC 16 bitmiş
ARR nin bazısı 16 bazısı 32bit

muhittin_kaplan

şunu deneyip sonuçlarını Yazarmısınız ?
Siz Daha iyi sonuçlar bulabiliyormusunuz

http://s3.dosya.tc/server10/zRrqbo/Timer.rar.html

muhittin_kaplan


LukeSkywalker


muhittin_kaplan

#7
yanlış hesaplıyor gibi geldi bana
1200mSec için verdiği değerler nedir? (1,2 saniye)
(72mhz cortex 3 için)

LukeSkywalker

#8
APB frekansınız nedir?

mesaj birleştirme:: 08 Eylül 2013, 14:57:04

APB=24MHz, STM32F1xx serisi, Timer 7, 1200uS'lik kesme;
void InitTimer7(){
  RCC_APB1ENR.TIM7EN = 1;
  TIM7_CR1.CEN = 0;
  TIM7_PSC = 0;
  TIM7_ARR = 28799;
  NVIC_IntEnable(IVT_INT_TIM7);
  TIM7_DIER.UIE = 1;
  TIM7_CR1.CEN = 1;
}




mesaj birleştirme:: 08 Eylül 2013, 14:59:00

Bir de mesela STM32 M4 işlemcilerde  APB prescaler değeri "1" değilse Timer modülünün frekansı APB'nin 2 katı oluyordu. Eğer bunda da böyle bir durum var ise frekansı 48MHz almak gerekebilir.

mesaj birleştirme:: 08 Eylül 2013, 15:04:35

Şimdi baktım da STM32F101xx, STM32F102xx,STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs ref . manualde şöyle bir ibare var;
1. if the APB prescaler is 1, the timer clock
frequencies are set to
the same frequency as
that of the APB domain to which the timers are connected.
2. otherwise, they are set to twice (×2) the frequency of the APB domain to which the
timers are connected.