Stm32 i2c hal library interrupt handler

isoment01

Üye
Katılım
26 Haz 2016
Mesajlar
197
Puanları
1
Yaş
29
Arkadaşlar merhaba, stm32 ile cubemx'te interrupt configürasyonları yaptım fakat interrupti çalıştıramadım. Bu konuda bilgisi olan arkadaşlar varsa yardımlarını bekliyorum.

Sorumu şöyle açayım; elimde bir touch ic bulunmakta bu ic'den sürekli veri okumak yerine ben dokunduğumda veri okumak istiyorum. IC i2c ile haberleşiyor ve ayrı olarak change bacağı bulunmakta. Kafamı karıştıran mevzu şu ben bu change bacagını dış kesme olarak kullanıp her değişimde i2c (i2c'yi interrupt olarak değil normal ayarlayacağım ) ile veri okusam mı doğru olur yoksa i2c interrupt'ı kurup veriyi bu şekilde mi okuyacağım.
İkincisi hk. bilgim hiç yok.
 
Son düzenleme:

karaapak

Profesyonel Üye
Katılım
2 May 2011
Mesajlar
1,931
Puanları
507
Yaş
33
2.si zaten yok.
Harici kesme kurup,
kesmede bir bayrak işaretleyip,
kesmenin geldiğini ana döngüde takip edip,
geldiğinde i2c ile gerekli okumaları yaparsın.
 
Konu Sah
isoment01

isoment01

Üye
Katılım
26 Haz 2016
Mesajlar
197
Puanları
1
Yaş
29
2.si zaten yok.
Harici kesme kurup,
kesmede bir bayrak işaretleyip,
kesmenin geldiğini ana döngüde takip edip,
geldiğinde i2c ile gerekli okumaları yaparsın.
Kesmenin içinde okuma yapmak sağlıklı değil mi? Zaman kritik işlemim yok.
 

karaapak

Profesyonel Üye
Katılım
2 May 2011
Mesajlar
1,931
Puanları
507
Yaş
33
I2C fonksiyonlarını kendin yazmadığın için kesme içinde kullanılırsa problem çıkarır mı bilemezsin.
En azından karşıdan cevap gelmeyebilir,
bunun için bir zaman aşımı beklersin,
kesmede bunu beklemek hiç iyi değil.
İyi bir alışkanlık olarak kesme dışında halletmek doğru olur.
Yinede kesme içinde ve dışında iki şekildede deneyebilirsin.
 
Konu Sah
isoment01

isoment01

Üye
Katılım
26 Haz 2016
Mesajlar
197
Puanları
1
Yaş
29
I2C fonksiyonlarını kendin yazmadığın için kesme içinde kullanılırsa problem çıkarır mı bilemezsin.
En azından karşıdan cevap gelmeyebilir,
bunun için bir zaman aşımı beklersin,
kesmede bunu beklemek hiç iyi değil.
İyi bir alışkanlık olarak kesme dışında halletmek doğru olur.
Yinede kesme içinde ve dışında iki şekildede deneyebilirsin.
tamam dedikleriniz çok mantıklı ama nasıl yapacağım ?

Kod:
void EXTI0_1_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI0_1_IRQn 0 */

  /* USER CODE END EXTI0_1_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
    HAL_GPIO_WritePin(GPIOC,LD4_Pin,GPIO_PIN_SET);
  /* USER CODE BEGIN EXTI0_1_IRQn 1 */
//read_keys(0x03, &hi2c1);
  /* USER CODE END EXTI0_1_IRQn 1 */
}
interrupt'ım bu şekilde change bacagında kesme meydana geldiğinde read keys fonksiyonunu call etmesi lazım ana döngüde nasıl çağıracağım ?

read keys komutumu ana döngüde nasıl istendiği zaman aktif ederim ? Sadece bu işi yaptırmak istemiyorum daha yapacağım başka şeyler de olacak.
 
Son düzenleme:

Forum istatistikleri

Konular
118,095
Mesajlar
832,076
Kullanıcılar
429,468
Son üye
Gim

Yeni konular

Çevrimiçi üyeler

Üst