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

Поділитися
Вставка
  • Опубліковано 5 лис 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ı.

  • @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ı.

  • @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.

  • @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.

  • @abdurrahmanfirat6579
    @abdurrahmanfirat6579 8 місяців тому

  • @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.

  • @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

  • @mustafagarip4644
    @mustafagarip4644 2 роки тому

    Teşekkürler hocam.

  • @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 Рік тому

      @@coskuntasdemirUA-cam tamamdır hocam çok teşekkür ederim

  • @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 роки тому

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

  • @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 роки тому

      @@coskuntasdemirUA-camtüm sorularımın cevaplarını aldım teşekkürler Hocam

  • @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 роки тому

      @@coskuntasdemirUA-cam Anladım hocam çok teşekkürler.

    • @wolfteam_deliKurt
      @wolfteam_deliKurt Рік тому

      @@coskuntasdemirUA-cam 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