İnt32 lik sayıyı I2C ile gönderme sorunu

Başlatan enigmagazi, 09 Ağustos 2011, 14:08:41

GreeN

Alıntı yapılan: enigmagazi - 10 Ağustos 2011, 15:13:17
Gene make16 daki değerin aynısı cıktı anlamıyorum adım adım bakıldığında ik işlemciyide acıyorum masterde üretilen değer slave geliyo aynı sayıları alıyorum ama sonuc farklı acaba make8 işlemi yanlışmı yapıyor ben kendim 10 bitlik sayıda yuksek ve alcak değerlikli sayıları nasıl ayıra bilirim.

32 biti 8 bitlik değişkenlere attın mı?

birinci 8 bitlik veriyi gönder slaveden tanımladığın bir diziye al. (incoming[0] 'a )
ikinci 8 bitlik veriyi gönder slaveden tanımladığın bir diziye al. (incoming[1] 'a )
üçüncü 8 bitlik veriyi gönder slaveden tanımladığın bir diziye al. (incoming[2] 'a )
dördüncü 8 bitlik veriyi gönder slaveden tanımladığın bir diziye al. (incoming[3] 'a )

sonra make32 ile incoming[0] incoming[1] incoming[2] incoming[3] içerisindeki verileri tekrar birleştir.

sen spi den verileri salla onlar yerini bulsun diyorsun.


int i=0;
..
..
#int_ssp 
void ssp_isr(void) 
{ 

incoming[i] = spi_read(); 
i++; 
if(i=4){
i=0;
}
}


Terörü Lanetliyoruz.

GreeN

Alıntı yapılan: enigmagazi - 10 Ağustos 2011, 13:24:54
Alıntı yapılan: GreeN - 10 Ağustos 2011, 13:02:53
Verilerin bozuluyor. Normal for,while döngüleri içinde okumaya çalışırsan veriyi kaçırırsın. Okumayı interrupt ile yapın.


#int_ssp 
void ssp_isr(void) 
{ 

buffer[i] = spi_read(); 
i++; 

}




zaten oyle okuyorum

#INT_SSP 
void ssp_interrupt() 
{ 
incoming = i2c_read(); 
incoming1 = i2c_read();

x=make32(incoming1,incoming);
bu slave kısmım arda arda gonderip ard arda okuma yapıyorum ama baktığımda karşı tarafta en son gönderdiğim bit değeri iki değişkendede çıkıyo yani başta gönderdiğim yok ikiside aynı değeri alıyor...

Zaten öyle yapıyorum dediğin bumu yani , abicim şu kodu baştan versende insanları uğraştırmasan.
@iyildirim usta kaçırmamışsın yine . Saygılar.
Terörü Lanetliyoruz.

enigmagazi

Teşekkür ederim tam çözdüm çalıştı siz cevap yazmışsınız genede teşekkürler uğraşılarınız için... :-[ ;

SpeedyX

Şimdi benim merak ettiğim, nasıl oluyorda i2c verisi geldiğinde spi kesmesi aktif olup yanlışta olsa veri alıyordun... ::)

Veri alıyorum dediği için kimse dikkat etmemiş spi-i2c meselesine.

enigmagazi

Pardon yanlış yazmışım aslında I2C ile gönderiyorum karşıdanda aynı kesmeyle alıyorum :) yazarken dalgındım herhalde.  iki pic arasında SPI haberleşmeyi çözeniniz varmı arkadaşlar ???

enigmagazi

iki pic arasında SPI haberleşmeyi çözeniniz varmı arkadaşlar hız acısından galiba SPI kullanmam gerekiyor bir fikri yada örneği olan varmı ???