اطلاعیه

Collapse
No announcement yet.

سوال در مورد پروتکل spi

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در مورد پروتکل spi

    با درود و خسته نباشید
    من برای یه کاری نیاز دارم که از spi نرم افزرای استفاده کنم حالا سوال من اینه که هر بار که master کلاک میده یه بیت از master به slave میره
    حالا دیتایی که slave بر میگردونه با همون 8 تا کلاکی هست که مستر میفرسته یا نه 8 تا کلاک برای ارسال استفاده کنم و بعد 8 تا برای دریافت ؟؟؟

    #2
    پاسخ : سوال در مورد پروتکل spi

    لینک های زیر می تونن مفید باشن مطالعه بفرمایید بد نیست.


    http://download.mikroe.com/documents/compilers/mikroc/avr/help/software_spi_library.htm
    http://forum.arduino.cc/index.php?topic=124138.0
    https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwja3c2v3InQAhWKGCwKHdhmC6sQFggzMAM&url=http%3A%2F%2Fwww.atmel.com%2Fimages%2Fdoc1108.pdf&usg=AFQjCNH1ieMOa_fh0r4Ti-7X5QvlDKda5w
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : سوال در مورد پروتکل spi

      ممنون حل شد برنامه SPI نرم افزاری توی مد MASTER نوشتم





      #include <mega16a.h>
      #include <delay.h>




      #define SPI_MAX_BIT 8
      #define CLK PORTB.7=1,delay_us(2),PORTB.7=0
      #define SPI_MISO PORTB.5
      #define SPI_MOSI PINB.6


      #define DO_DDR DDRB.5
      #define DI_DDR DDRB.6
      #define CL_DDR DDRB.7


      int SOFT_SPI(int in){
      int i,b;
      int data;
      b=in;
      for(i=0 ; i<SPI_MAX_BIT ; i++){
      SPI_MISO=b & 0x01;
      b>>=1;
      data<<=1;
      data= data | SPI_MOSI;
      CLK;
      }
      return data;
      }


      //-----------------------------------------------------------------
      //-----------------------------------------------------------------
      void SPI_SOFT_INIT(void){
      CL_DDR=1;
      DO_DDR=1;
      DI_DDR=0;
      }






      void main(){
      delay_ms(1000);
      DDRC=0XFF;
      DDRB =(1<<DDB7 ) | (0<<DDB6 ) | (1<<DDB5 ) | (1<<DDB4 ) | (0<<DDB3 ) | (0<<DDB2 ) | (0<<DDB1 ) | (0<<DDB0 );
      PORTB=(0<<PORTB7) | (1<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);




      SPI_SOFT_INIT();
      while(1){


      PORTC= SOFT_SPI(0xf0);




      }




      }



      دیدگاه

      لطفا صبر کنید...
      X