Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: görkem - 28 Aralık 2018, 11:28:01

Başlık: Garip bir sorun
Gönderen: görkem - 28 Aralık 2018, 11:28:01
Arkadaşlar Merhaba,

stm32f030 işlemci ile usart dan veri çekiyorum veri çekimi bittiğinde HAL_UART_RxCpltCallback fonksiyonunda gidiyorum bu fonksiyonda 24lc256 eepromu'na veri yazmak istiyorum fakat işlemci çakılıyor.mainde eeproma veri yazıp okuyabiliyorum onda sorun yok.Fikrinize ihtiyacım var.

İyi Çalışmalar dilerim.
Başlık: Ynt: Garip bir sorun
Gönderen: apsis - 28 Aralık 2018, 15:05:26
Sen hiç eepromun datasheet'ini inceledin mi? Eeprom I2C ile haberleşiyor. Uart ile değil.
Başlık: Ynt: Garip bir sorun
Gönderen: RaMu - 28 Aralık 2018, 15:19:23
Tahmin:
Muhtemelen uart callback kesmesi içinde i2c ile eeproma veri yazıyor,
doğal olarak işlemci error rutinlerine gidiyordur.

Debug ile inceleyip uart callback içine breakpoint koyarak nerede hangi adımda takılıp oradan
nereye muhtelmelen hangi error rutinine gidip çakıldığını bulmaya çalışın.
Başlık: Ynt: Garip bir sorun
Gönderen: e-zeki - 28 Aralık 2018, 16:43:35
f030 MCU'larda I2C ve USART(hatta neredeyse tüm modüller) aynı Bus üzerinden clock erişimi sağlıyor. Uart kesmesi içerisinde I2C modülüne o yüzden erişemiyorsunuz. kesme içerisinde bir değişken durumuyla oynayarak main'de I2C'yi kullanmaya çalışın.
Başlık: Ynt: Garip bir sorun
Gönderen: F493 - 28 Aralık 2018, 16:53:10
Selam,

Alıntı yapılan: apsis - 28 Aralık 2018, 15:05:26Sen hiç eepromun datasheet'ini inceledin mi? Eeprom I2C ile haberleşiyor. Uart ile değil.

@görkem hocam Uart ile yazıyorum demiyor zaten, Uart içinde yazıyorum diyor, ayrıca SPI Eepromlar da var.  ;)

Çakılma derken Hard Fault'a mı düşüyor işlemci? @z hacanın hard fault'un nereden geldiğini aşamalarıyla anlatan bir video su var dı ben faydalanmıştım.  Sorunu tespit etmek gerekli o şart, fakat yöntem olarak bunu interrupt içinde yapmamak lazım.

Esen kalın.
Başlık: Ynt: Garip bir sorun
Gönderen: görkem - 28 Aralık 2018, 17:21:11
@apsis keşke önce düzgün okuyup anlasaydınız  eepromun I2C ile haberleştiğini bende biliyorum!
Daha açıklayıcı anlatayım  usarttan veri çekip I2C ile eeproma gelen veri yazılacak fakat usart callback kesmesinin içerisinde  eeproma yazma yaparken işlemci çakılıp kalıyor.callback kesmesine girmeyip normal veri yazdırayım dediğimde sorunsuz yazabiliyorum zaten.

@RaMu dediklerinizi dikkate alıp inceleyeceğim.
Başlık: Ynt: Garip bir sorun
Gönderen: görkem - 28 Aralık 2018, 17:40:49
@e-zeki siz aynı hatta deyince bir inceledim ve bütün modüller aynı bus üzerinden clock alıyormuş kullandığım.
 
(https://i.ibb.co/syXZ3KL/Screenshot-4.png) (https://ibb.co/syXZ3KL)

dediğiniz şekilde bir değişken ile oynayarak yazdırmam gerekecek sanırım. başka bir yöntem olabilir mi diyede düşünüyorum aslında.

@F493 öneriniz için teşekkür ederim evet hard fault'a düşüyor resetlemem gerekiyor.@z hocanın hard fault ile ilgili videosunu izleyeyim hemen.
aslında kesme ile kullanmak istemiyordum fakat hızlı işlem yapmam gerektiği için kesme içinde kayıt etmek istemiştim.
Başlık: Ynt: Garip bir sorun
Gönderen: apsis - 28 Aralık 2018, 22:47:02
@görkem arkadaşım kusura bakma ben register ile doğrudan erişim yapıyorum. O yüzden uart deyince kütüphanede ı2cnin dahil olduğunu düşünmemiştim.