CCS SPI FONKSIYONU SORUNU

Başlatan neotr, 15 Ekim 2008, 10:00:37

neotr

Merhaba arkadaşlar CCS C ile 16f877 PIC ine CCS SPI fonksıyonlarını kullanarak Program atıyorum ve sankı bır garıplık var yada ben bırseyı gozden kacırıyorum..
#include <16f877.h>

#FUSES HS, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT,
#FUSES NOWDT, NODEBUG, NOCPD                                //#fuses HS,NOWDT,NOPROTECT,NOLVP
#USE delay (clock=20000000)

#use fast_io(b)
#use fast_io(d)
#define PIR1 0x0C
#define SSBUF 0x13
int8   instr;
void main()
{
 setup_spi(spi_slave | spi_h_to_l |spi_ss_disabled);  //spi_ss_disabled
 set_tris_b(0x00);
 set_tris_d(0x00);
 output_b(0x00);
 output_d(0x00);
 instr=0x00;
 do{
      output_high(pin_d0);
      while(!spi_data_is_in());        //while(!(*PIR1==0x08));                   
      
      instr = spi_read();
     output_low(pin_d0);
      if(instr == 0x07)
       {
         output_b(0x55);
          delay_ms(500);
         output_b(0x00);
         delay_ms(500);
         output_b(0x55);
         delay_ms(500);
          output_b(0x00);
          delay_ms(500);       
       }
       else if(instr == 0x03)
       {
         output_b(0x04);
          delay_ms(500);
         output_b(0x00);
         delay_ms(500);
         output_b(0x04);
         delay_ms(500);
          output_b(0x00);
          delay_ms(500);       
          output_b(0x04);
          //*SSBUF = 0x00;
       }
       //instr=0x00;
       //output_b(0x00);
 }while(1);
}


kod yukarıdakı gıbı PIC e ılk enerjı verdıgımde Masterdan 0x03 verısı gelıyor ve 2. İf e program dusuyor ve gereken ledı flaş yapıyor.
Fakat do{}while döngusu 2. cevrımınde  << while(!spi_data_is_in()); >>
e kadar gelıyor ve orda tıkanıyor sızce sorun nerden kaynlanıyor olabılır...

ahmet2004

SPI giriş pininden ikinci bayt bilgiyi bekliyor.

neotr

fakat ben Master işlemciden süreklibilgi yolluyorum..CCS nın bu SPI fonksıyonlarında bır problem olabılırmu acaba?

mucit07

kesinlikle gözden kacırdıgın bir şeyler var bu fonksiyonusorunsuz bir şekilde defalarca calıştırdım

neotr

evet mucit donanımsal bir sorun varmış iki farklı kartın toprak ları kısa devre eden kablodanmıs sorun ....