1 Buton 2 Görev

Başlatan Analog, 27 Haziran 2019, 22:22:03

Analog

Herkese merhaba buton a 2 farklı görev atamak istiyorum ama biraz sorun yaşıyorum.
TIM2 yi counter ve buton alçalan yükselen kenar tetik olarak ayarlandı.

Buton kesmesinin içinde TIM2'nın flag ı kontrol edilip aktif ediliyor aktif se 0 verilip kapatılıyor yanı buton a basılınca counter sayıyor cekınce de duruyor. Buraya kadar herşey normal ama main içinde biraz problem yasıyorum kısa basma suresını algılıyor ama uzun basmada sorunum var kod orneği aşağıdadır. Önerilerinizi bekliyorum

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{	
	if(TIM2->CR1==0x00)
		{
			TIM2->CR1 |= TIM_CR1_CEN;
		}
	else __HAL_TIM_DISABLE(&htim2);
}
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_TIM2_Init();

	
  while (1)
  {
		counter=__HAL_TIM_GET_COUNTER(&htim2);
		if(counter>=2000 && counter<=3000) 
		{HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_14); counter=0;}
		else if (counter>=3500 && counter<=4500) 
		{HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_13); counter=0;}
  }	

}