PDA

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


lambaotrung
25-04-2012, 11:41 PM
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.

eman
19-05-2012, 03:09 PM
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);