stm32f0 da timer2 yok ama var

Başlatan ea, 05 Ocak 2015, 10:54:51

ea

kolay gelsin arkadaşlar.
stm32f030 ile denemeler yapıyorum. timer2 ile interrupt oluşturuyorum ve çalışıyor. fakat anlamadığım konu, bu mcu dökümanlarında timer2 den hiç bahsedilmemesi.
timer2 varda dokümanlara mı yazmamışlar yoksa ben mi bi seyleri kaçırıyorum? Bu konuda yardımcı olabilir misiniz.
www.gstelektronik.com.tr  |  www.inohom.com

muhittin_kaplan

Kodlarıda Görebilirsek Belki ?

LukeSkywalker

Dökümanlarda ben de göremedim. Başka bir bit yeniği var bu işte..

ea

void TIM_Config(void)
{


  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  NVIC_InitTypeDef NVIC_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
  TIM_TimeBaseStructure.TIM_Prescaler = 100;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseStructure.TIM_Period = 24000;
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);


  NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0x00;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  //NVIC_EnableIRQ(TIM2_IRQn);
  TIM_Cmd(TIM2, ENABLE); // Timeri baþlat
  TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);
}


void TIM2_IRQHandler(void)
{

    if (TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET)
    {
         TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
         ToggleBlueLED();

    }
}


interrupt ve timer init fonksiyonum bu selikde. gözden kaçıtdığım bi şey mi var acaba. bu kodları da yazarken emblocks kullandım ve config dosyasındaki interrupt vektör isimlerine falan bakarak yazmıştım yani orada timer2 interruptından bahsediyordu. dökümana daha sonra bakmak istedim ama bulamadım
www.gstelektronik.com.tr  |  www.inohom.com

yamak

Bazı durumlarda datasheet'te bir peripheral yok dense bile aslında olabiliyor.Sadece o peripheral test edilmeden piyasa sürülüyor.Diyelim stm32f030x serisinin bazılarında TIM2 yok bazılarında var dense bile aslında hepsinde olabiliyor.Fakat var denilenlerdeki test edilmiş diğerleri test edilmemiş oluyor.Tabi illaki böyledir demiyorum.Sizdeki başka bişey de olabilir.

CLR

#5
İncelemedim ama tim2 diye kullandığın şey 030'da olan başka bir timer'ın registerlerini kullanıyorsun diye tahmin ediyorum mesela tim3 gibi. ST'de register yapısı her chipte nerdeyse aynı olduğundan TIM2 diye kullandığın şey aslında TIM3-4-5'den biri olma ihtimali çok yüksek. 

Bunu anlamak için tim registerlerinden birinin adresini usarttan pc'ye bas veya debugger ile bak,  datasheetteki timerX adresleri ile karşılaştır, ST muhtemelen başka chipte tim2 diye adlandırdığını o chipte tim3-4-5 diye adlandırmış olabilir
Knowledge and Experience are Power

ea

Anladım hocam. cevaplarınız için teşekkürler. biraz daha kurcalayayım belkide dediğiniz gibi durumlar vardır.
www.gstelektronik.com.tr  |  www.inohom.com