Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => STM32 Örnekleri => Konuyu başlatan: Analog - 27 Haziran 2019, 22:22:03

Başlık: 1 Buton 2 Görev
Gönderen: Analog - 27 Haziran 2019, 22:22:03
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;}
  }

}