Stm32f401re Nucleo kartı timer hatası çalışmıyor.

Başlatan sessiz_roman, 03 Mayıs 2019, 22:10:44

sessiz_roman

Arkadaşlar hepinize mutlu akşamlar diler. Başlıkta da belirttiğim gibi ilgili kartta şu kodlar ile bile timer'ı bir türlü çalıştıramadım. Yardımlarınızı bekliyorum. Şimdiden teşekkür ederim.

Not: Led A portunun 5. pininde bağlı.

#include "stm32f4xx.h"
GPIO_InitTypeDef led;
TIM_TimeBaseInitTypeDef timer;
NVIC_InitTypeDef nvic;
void config(){
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
led.GPIO_Mode=GPIO_Mode_OUT;
led.GPIO_OType=GPIO_OType_PP;
led.GPIO_Pin=GPIO_Pin_5;
led.GPIO_PuPd=GPIO_PuPd_NOPULL;
led.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&led);
timer.TIM_ClockDivision=TIM_CKD_DIV4 ;
timer.TIM_Period=9999;
timer.TIM_Prescaler=8399;
timer.TIM_RepetitionCounter=0;
timer.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &timer);
TIM_ITConfig(TIM4, TIM_IT_Update ,ENABLE);
TIM_Cmd(TIM4, ENABLE);
nvic.NVIC_IRQChannel=TIM4_IRQn;
nvic.NVIC_IRQChannelPreemptionPriority=0x00;
nvic.NVIC_IRQChannelSubPriority=0x00;
nvic.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&nvic);
}
int main(void)
{
config();
  while (1)
  {
  }
}
void TIM4_IRQHANDLER(){
GPIO_ToggleBits(GPIOA,GPIO_Pin_5);
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
}

devrecii

Timbasestart timpwmstart  isimli fonksiyonlarla pwm başlatılıyor start veriliyor internette araştır.

sessiz_roman

Arkadaşlar hatayı tespit ettim. En altta yer alan void TIM4_IRQHANDLER() fonksiyonunu büyük harfle yazdığım için kod düzgün çalışmamış. Bu fonksiyonu void TIM4_IRQHandler() ile değiştirince kod başarılı bir şekilde çalıştı.
Yardım edenlere tekrar teşekkür eder iyi akşamlar dilerim.