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.