STM32 Programlama - Kesmeler -4 - EXTI Birimi Kullanarak Buton ile Kesme Oluşturma Örneği

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 46

  • @volkankasikci2608
    @volkankasikci2608 3 года назад +3

    Bilgilerini aktarmakta çekinmeyen türkiyedeki sayılı insalardansınız.Elinize sağlık

  • @recepturkyilmaz5243
    @recepturkyilmaz5243 4 года назад +8

    Çok verimli bir interrupt serisi oldu hocam. Teşekkür ederim. Eğitim Serilerinin devamını bekliyorum. 👏👏👏

  • @mucod1613
    @mucod1613 4 года назад +5

    hocam sayenizde temel mantıkları gayet iyi anladım serileriniz için teşekkür ederim

  • @furkanozcan6124
    @furkanozcan6124 4 года назад +5

    Hocam eğitimler çok verimli oluyor emeğinize sağlık.

  • @ceyhunuysal5307
    @ceyhunuysal5307 4 года назад +2

    Çok temiz ve açıklayıcı bir video olmuş. Elinize sağlık hocam.

  • @ahmetserdr2920
    @ahmetserdr2920 4 года назад +2

    Hocam sizi çok beğeniyorum, hakkınız ödenmez gercekten. Hocam sizden ricam olacak, bir videonuzda da gizlilik ilkesi olmayan yaptığınız buyuk projeleri gösterebilir misiniz? Fikir sahibi olmamız için

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад +1

      Aslında kendi yaptığım büyük proje pek yok. İçinde çalıştığım projeler oldu, onlardan bahsederim belki ileride.

  • @wolfteam_deliKurt
    @wolfteam_deliKurt Год назад

    Kesmeler videosundaki her şeyi inceledim ve kendi notlarımı alarak kodları yazdım ama ledi yakamıyorum. Acaba ".ioc" uzantısından kesmeler için ekstra bir ayar yapmamız gerekiyor?
    SYSCFG artık yok. Bu yüzden EXTI 13'ü “ AFIO->EXTICR[4] |= AFIO_EXTICR4_EXTI13_PC; “ halinde seçmem gerekti.

  • @tutankamon31
    @tutankamon31 2 года назад

    Teşekkürler, oldukça faydalı.

  • @motosohpet9325
    @motosohpet9325 4 года назад +1

    Hemen beğenelimde sabah izlerim

  • @semihsenyuz7436
    @semihsenyuz7436 2 года назад

    MerhabaHocam
    SYSCFG ve GPIO'ların clocklarını açıyoruz fakat EXTI çevre biriminin neden Clock'u yok o konu hakkında bilginiz var mıdır?Yoksa Reference Manuel'de ne ise o mudur?
    Kolay gelsin

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  2 года назад +1

      Uzun zaman oldu bu konulara bakmayalı ama hatırladığım kadarıyla EXTI için SYSCFG'deki seçim ve ilgili IO'nun clock'unu açmak yetiyordu.

  • @furkanozturk9577
    @furkanozturk9577 4 года назад

    Coşkun hocam endüstriyel ürün tasarımı için esp32s stm32f1xx'den hangisi daha iyidir bilgi verir misiniz?
    İyi ve sağlıklı günler dilerim :)

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад +1

      İkisi de kullanılıyor gördüğüm kadarıyla. Ama kategorileri biraz farklı: ESP32 daha çok internet bağlantılı projelerde kullanılıyor.

  • @beratyldzer5992
    @beratyldzer5992 3 года назад

    Hocam emekleriniz için çok teşekkürler, genel kültür açısından öğrenmek istiyorum, nvic için priority ayarlarını yapabileceğimiz registerları reference manuel de bulamadım. Acaba bununla ilgili register ismi veya sayfa numarası yazabilir misiniz?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  3 года назад +2

      NVIC birimi de Cortex-Mx çekirdeği gibi Arm tarafından tasarlanan bir birim olduğundan farklı bir dökümanda yer alıyor: cortex m0 programming manual (kullandığın modele göre m0, m3, m4 vs.. olabilir)

  • @fatihsatlms4971
    @fatihsatlms4971 2 года назад

    Hocam no pull up no pull down ne demek tam olarak? Bir buton ikisinden biri olmak zorunda değil mi?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  2 года назад

      Fatih bunun için biraz elektronik konularına bakman lazım pull-up ve pull-down direnci diye aratabilirsin.

  • @mustafagarip4644
    @mustafagarip4644 2 года назад

    Teşekkürler hocam.

  • @mursitkc5328
    @mursitkc5328 4 года назад

    Hocam Allah razi olsun🙏🙏. Kesme fonksiyonun icinde HAL_Delay() calistiramiyirum. Bir oneriniz var midir?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад

      Kesme içinde uzun işlemler yapmak ve hal delay kullanmak iyi bir fikir değil. Kesmede en kısa işi yapıp uzun işi ana fonksiyonda halledebilirsin

  • @unalfaruk
    @unalfaruk 3 года назад

    Merhaba Hocam,
    Kesme tetiklendiğinde meydana gelen pending bitinin "1" olması durumunu ne zaman sıfırlamak uygundur? Bunun bir önemi var mı? Sizin örneğinizde mesela, fonksiyona girer girmez sıfırladınız (16:08) sonra LED durumunu değiştirdiniz, bunun özel bir sebebi var mı?
    Bu biti interrupt sonlandırıcı olarak hayal etmiştim. Geliştirici tüm işlemleri yapar, bu biti sıfırlar ve ana program dönüşünü tetikler gibi. Sanıyorum bununla alakalı değil, ana program için interrupt fonksiyonun sonlanması bekleniliyor, bu bite bakılmıyor.

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  3 года назад

      En başta sıfırlamakta faydar var. Bu bitin yazılması ile interruptan çıkılması arasında çok kısa bir süre olursa tekrar "boş yere" interrupta girme gibi durumlar oluşabilir. Pending biti "interrupt isteği gelmiş ama henüz CPU tarafından işleme alınmamış durumunu" gösterir. Eğer interruptan çıktıktan sonra hala pending biti sıfırlanmamışta tekrar interrupta girilir.

  • @enesklc247
    @enesklc247 3 года назад

    hocam iyi günler şu satırda "void EXTI0_IRQHandler(void)" 'EXTI0_IRQHandler' defined but not used [-Wunused-function] böyle bir hata alıyorum nasıl çözebilirim hatayı ?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  3 года назад

      Fonksiyonun ismi ..startup.s dosyasında yer aldığı haliyle birebir aynı olmalı, muhtemelen farklılık var. Dosyadan copy-paste yaparak alabilirsin ismi.

  • @coderhex1675
    @coderhex1675 4 года назад

    Kaliteli bir içerik olmuş... Tesekkur ederim. CMSIS-Driver API'ı ile ayni kodun farklı marka mcularda calisabilecek sekilde firmware yazabilmek icin tutorial bulmakta sıkıntı yasiyorum. Boyle bir video dusunurmuydunuz?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад +1

      CMSIS-Driver API'lerini hiç kullanmadım. Aslında yazılımınızı geliştirirken katmanlara ayırıp geliştirdiğinizde farklı modele uyarlamak da en az eforla gerçekleşebilir. Yani butonu okuyan fonksiyonla IO'lara erişen kısımlar ayrı katmanlar olmalı.

  • @wolfteam_deliKurt
    @wolfteam_deliKurt Год назад

    Hocam,
    AFIO->EXTICR[4] |= AFIO_EXTICR4_EXTI13_PC;
    yerine
    AFIO->EXTICR[4] |= (1

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  Год назад

      AFIO_EXTICR4_EXTI13_PC tanımına gidip baktığında aynı değeri görüyorsan kullanabilirsin demektir.

    • @wolfteam_deliKurt
      @wolfteam_deliKurt Год назад

      @@coskuntasdemirRUclips tamamdır hocam çok teşekkür ederim

  • @furkangungor6723
    @furkangungor6723 4 года назад

    Hocam iyi günler,GPIO ayarlamalarında MODER ayarını yaparken |= kullanmak yerine neden &=~ şeklinde yazdınız ?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад +2

      GPIO pinini giriş olarak ayarlamak için bunu yapıyoruz. &=~ bit sıfırlama için kullanılıyor. GPIO hakkındaki videolarda ayrıntıları bulabilirsin.

    • @furkangungor6723
      @furkangungor6723 4 года назад

      Hocam datasheetde reset durumda geliyor diye hatırlıyorum registerlar.biti 0 yapmak gerekli mi bu durumda zaten reset durumda.Ayrıca bu yöntemle tanımlama yapmak datasheetde yazılan üretici tarafından rezerve edilen bit kısımlarında sıkıntı yaratır mı yani and yaptığımız için o kısımları set etme durumu olur mu?

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад +1

      @@furkangungor6723 Evet default durumda 0 olarak geliyor. Ama bunun istisnaları da olabiliyor. Bir de bizim bu ayarları yaptığımız noktada herşeyin default değerlerde olduğunu varsayamayız. %90 doğru çıkabilir ama böyle olmayacağı durumlar da olabilir. Reserved bölgelerle ilgili hiç bir işlem yapmamak gerekir. Son sorunu tam anlamadım ama orada sadece VE işlemi yok. VE işlemi ve tersleme kullanılarak sadece belirli bit ya da bitlerin sıfırlaması yapılıyor.

    • @furkangungor6723
      @furkangungor6723 4 года назад

      @@coskuntasdemirRUclipstüm sorularımın cevaplarını aldım teşekkürler Hocam

  • @enesbaydan6206
    @enesbaydan6206 4 года назад

    Hocam Merhabalar aynı çalışmayı stm32f429zi nucleo kartında yaptım expected hataları veriyor.
    error: expected identifier or '(' before 'GPIO_TypeDef' aynı hatayı SYSCFG_BASE ve EXTI içinde verdi hata koduna basınca stm32f429xx.h'nın large file dosyasını gidiyor. Hata tam olarak nerde acaba cevaplarsanız sevinirim.

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад +1

      Hataya göre bir yazım hatası var muhtemelen. EXTI hatlarının tanımları kullandığın işlemcide farklı olabilir, onları da kontrol etmek gerekiyor.

    • @enesbaydan6206
      @enesbaydan6206 4 года назад

      @@coskuntasdemirRUclips parantez işaretlerin de yazım hatası yapmışım bu arada videolar için sağ olun hocam umarım devamı gelir. Takipteyiz

  • @abdurrahmanfirat6579
    @abdurrahmanfirat6579 9 месяцев назад

  • @berktuncer477
    @berktuncer477 4 года назад +1

    Hocam merhaba, EXTICR[3] olarak yazdığımız satırda 3 ne anlama geliyor neye göre üç yazıyoruz

    • @coskuntasdemirYoutube
      @coskuntasdemirYoutube  4 года назад

      EXTICR ayarları için 4 tane register var bunlar dizi şeklinde tanımlanmış. EXTICR1..2..3..4 gibi de tanımlanabilirdi hatta bazı modeller de böyle yapmışlar. Birşey farketmiyor yani. Bizim ilgilendiğimi 13 nolu pine ait ayarlar 4. register'da o yüzden EXTICR[3] registeri ile ilgileniyoruz.

    • @berktuncer477
      @berktuncer477 4 года назад

      @@coskuntasdemirRUclips Anladım hocam çok teşekkürler.

    • @wolfteam_deliKurt
      @wolfteam_deliKurt Год назад

      @@coskuntasdemirRUclips hocam ben anlayamadım da rica etsem yeniden açıklayabilir misiniz? Eğitimler için çok teşekkür ederim, çok faydalı oluyor.

    • @wolfteam_deliKurt
      @wolfteam_deliKurt Год назад

      onun yerine EXTICR[4] yazdım