[Giúp] giao tiếp SPI giửa 2 Pic 16f877A

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • lambaotrung
    Đệ tử 5 túi
    • Jan 2010
    • 96

    #1

    [Giúp] giao tiếp SPI giửa 2 Pic 16f877A

    chào các bạn, các anh chị, các bậc tiền bối đi trước, E hôm này có vấn đề này muồn hỏi các bác.

    Hiện em em đang làm bài tập về giao tiếp SPI, mọi người nói là nó rất dể, nhưng sao khi em biết xong chương trình và đưa nó vào thì nó ko chạy, mong các quy lão tiên sinh xem giúp em. và sữa sai giúp. Thân.



    code:
    //---------------------------------- Strar --------------------------//

    int8 data=0;
    Void Main()
    {

    Setup_spi(spi_master|spi_l_to_h|spi_clk_div_16);

    while(true)
    {
    spi_write(data);
    data++;
    delay_ms(1000);

    if(data>9) data=0;


    }


    }



    //----------------------- END ----------------------//


    Slave:

    //-------------------------------- Star ---------------------------//

    int8 data_in;
    #int_ssp
    void SPI()
    {
    data _in=spi_read();
    delay_us(100);
    }


    void main()
    {

    setup_spi(spi_slave|spi_l_to_h|spi_clk_div_16);
    enable_interrupts(int_ssp);
    enable_interrupts(global);

    lcd_init();

    while(true)
    {
    lcd_putcmd(0x80);

    printf(lcd_putchar," Value: %U",data_in);
    delay_us(500);
    }

    }

    //----------------------- END ------------------//


    kết nối chân giửa 2 PIC

    RC3 SLK
    RC4 SDI
    RC5 SDO

    Master-------------------Slave
    RC3----------------------RC3
    RC4----------------------RC5
    RC5----------------------RC4


    em làm như vậy ko biết có sai chổ nào ko mong các anh Giúp em. Thân.
    Last edited by lambaotrung; 25-04-2012, 10:48 PM.
  • eman
    Nhập môn đệ tử
    • Dec 2006
    • 6

    #2
    Giao tiếp SPI em dùng 3 chân nên con slave phải setup thế này:

    setup_spi(spi_slave|spi_l_to_h|spi_clk_div_16| SPI_SS_DISABLED);

    Comment

    Working...