STM32 TİMER DA DEĞİŞKEN ARTMAMASI

Başlatan burakgul, 18 Kasım 2025, 16:39:23

burakgul

arkadaşlar merhaba stm32cube de timer programını kurdum 600 ms de bir giriyor içerisinde de bir değişken tanımladım her girmede artacak ama 20 21'e kadar artıyor sonra artmıyor led yakıyorum o kısımda mesela 21 den sonra yanmıyor başına gelen oldu mu böyle bir sorun yardımlarınız beklerim

mehmet

Kodunuzu da paylaşırsanız daha fazla yardım alacaksınız.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

burakgul

#2
Moderasyon: Kodlarımızı paylaşırken kod tagı içinde olmasını sağlayalım.

uint8_t irs=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
irs++;
	 if(htim->Instance == TIM1)
	    {

		 if(irs>10){

			 HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_10);

		    	 	     	 }
}
}


void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
   if(GPIO_Pin == GPIO_PIN_4) // INT0 = PB4
   {
	   irs++;
	   //HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_10);
    	 if(intedg0 == 1) // Yükselen kenar
    	        {

    	     }

   	           }
}

Kodum bu şekilde timer programında irs>10 için giriyor ama onu 11 12 vs yaptığımda oraya girmiyor ve lcd de irs değerinin artışını göremiyorum.

mehmet

İlgili değişkeni fonksiyon içerisinde "static" olarak tanımlayınız.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

MrDarK

Interrupt içinde kullanılan değişkenlerde volatile tanımlaması kullanırız. Bunu da deneyebilir misin ?
Picproje Eğitim Gönüllüleri ~ MrDarK

burakgul

arkadaşlar dediklerinizi yaptım ama değişen birşey yok bana örnek bir kod paylaşabilirmisiniz bu uygulama ile ilgili bunu yapamadığım için projemi ilerletemiyorum.

mehmet

#6
İlgili değişkene sabit bir değer verin, bu değeri istediğiniz yerde görüyorsanız; bence kesme işleminizde bir sorun var. Belli zamanlarda mcu resetleniyor veya hataya giriyor. ErrorHandler içine PC13 için toogle ekleyin ve bu fonksiyona düşüp düşmediğine bakın.
Ayrıca, alttaki linkte bulunan uygulamalar ve videolar yardımcı olacaktır.
https://controllerstech.com/
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

burakgul

hocam yaptım dediğinizi değişkene sabit bir değer girdiğimde giriyor istediğim yere timer fonksiyonuda çalışıyor ama değişken her timer tetiğinde artmıyor

mehmet

#8
Hazır kod bulmanız zor. Hele ki STM32 ile. Belki proje bulursunuz o da kendi uygulamanıza eklenemeyebilir.
MX ile sistem frekansı 72MHz olacak şekilde hazırlayın, PC13 çıkış olsun.
RCC -> HSE = Kristal
SYS -> Debug = Serial Wire, Timebase Source = SysTick
Timers, TIM2 -> Clock Source = Internal Clock, PSC = 7200-1, Counter Period = 5000-1 (500ms ile çalışacak, diğer hızları kendiniz hesaplarsınız)
NVIC -> TIM2 global interrupt "işaretli"
Sonra kodu oluşturun.

Proje kodlarında:
Core -> Inc içerisine counter.h adında bir dosya ekleyin. İçerisine;
#include <stdint.h>
extern volatile uint16_t myCounter;   // Tanım değil, bildirim
satırlarını ekleyin.

Src -> main.c:
/* USER CODE BEGIN 0 */
volatile uint16_t myCounter = 0;   // 0-49999 aralığı

/* User Code Begin 2 */ altına
HAL_TIM_Base_Start_IT(&htim2);   // Kesmeyi çalıştır

Src -> stm32f1xx_it.c:
/* USER CODE BEGIN Includes */
#include "counter.h"

/* USER CODE BEGIN 1 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if (htim->Instance == TIM2) {
    myCounter++;
    HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
    if (myCounter >= 50000) myCounter = 0;
  }
}
satırlarını ekleyin. Diğer eklentileri kendiniz oluşturursunuz...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

Benzer Konular (5)