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
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.
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
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?
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)
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.
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.
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ı ?
Fonksiyonun ismi ..startup.s dosyasında yer aldığı haliyle birebir aynı olmalı, muhtemelen farklılık var. Dosyadan copy-paste yaparak alabilirsin ismi.
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?
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ı.
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?
@@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.
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.
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.
Bilgilerini aktarmakta çekinmeyen türkiyedeki sayılı insalardansınız.Elinize sağlık
Çok verimli bir interrupt serisi oldu hocam. Teşekkür ederim. Eğitim Serilerinin devamını bekliyorum. 👏👏👏
hocam sayenizde temel mantıkları gayet iyi anladım serileriniz için teşekkür ederim
Hocam eğitimler çok verimli oluyor emeğinize sağlık.
Çok temiz ve açıklayıcı bir video olmuş. Elinize sağlık hocam.
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
Aslında kendi yaptığım büyük proje pek yok. İçinde çalıştığım projeler oldu, onlardan bahsederim belki ileride.
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.
Teşekkürler, oldukça faydalı.
Hemen beğenelimde sabah izlerim
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
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.
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 :)
İ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.
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?
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)
Hocam no pull up no pull down ne demek tam olarak? Bir buton ikisinden biri olmak zorunda değil mi?
Fatih bunun için biraz elektronik konularına bakman lazım pull-up ve pull-down direnci diye aratabilirsin.
Teşekkürler hocam.
Hocam Allah razi olsun🙏🙏. Kesme fonksiyonun icinde HAL_Delay() calistiramiyirum. Bir oneriniz var midir?
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
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.
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.
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ı ?
Fonksiyonun ismi ..startup.s dosyasında yer aldığı haliyle birebir aynı olmalı, muhtemelen farklılık var. Dosyadan copy-paste yaparak alabilirsin ismi.
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?
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ı.
Hocam,
AFIO->EXTICR[4] |= AFIO_EXTICR4_EXTI13_PC;
yerine
AFIO->EXTICR[4] |= (1
AFIO_EXTICR4_EXTI13_PC tanımına gidip baktığında aynı değeri görüyorsan kullanabilirsin demektir.
@@coskuntasdemirRUclips tamamdır hocam çok teşekkür ederim
Hocam iyi günler,GPIO ayarlamalarında MODER ayarını yaparken |= kullanmak yerine neden &=~ şeklinde yazdınız ?
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.
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?
@@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.
@@coskuntasdemirRUclipstüm sorularımın cevaplarını aldım teşekkürler Hocam
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.
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.
@@coskuntasdemirRUclips parantez işaretlerin de yazım hatası yapmışım bu arada videolar için sağ olun hocam umarım devamı gelir. Takipteyiz
Hocam merhaba, EXTICR[3] olarak yazdığımız satırda 3 ne anlama geliyor neye göre üç yazıyoruz
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.
@@coskuntasdemirRUclips Anladım hocam çok teşekkürler.
@@coskuntasdemirRUclips hocam ben anlayamadım da rica etsem yeniden açıklayabilir misiniz? Eğitimler için çok teşekkür ederim, çok faydalı oluyor.
onun yerine EXTICR[4] yazdım