ATmega8---SPI總線控制
在發(fā)送數(shù)據(jù)之前都處于從模式,處于接收狀態(tài)。在發(fā)送的時(shí)候,需要進(jìn)入主模式,完成發(fā)送之后再進(jìn)入從模式。
以下為操作函數(shù):
interrupt [SPI_STC] void spi_interrupt(void)
{
//uchar tmp;
uchar i,b;
//tmp=SPSR;
b=SPDR;
r_buf[0]=r_buf[1];
r_buf[1]=r_buf[2];
r_buf[2]=r_buf[3];
r_buf[3]=r_buf[4];
r_buf[4]=r_buf[5];
r_buf[5]=b;
r_data[0]=r_buf[0];
r_data[1]=r_buf[1];
r_data[2]=r_buf[2];
r_data[3]=r_buf[3];
r_data[4]=r_buf[4];
r_data[5]=r_buf[5];
}
}
//-------------------------------------------------
void spi_init_s() //在沒(méi)有通訊之前,處于從模式
{
}
void spi_init_m()
{
SPSR=0X01;
}
//-------------------------------------
void send_spi()
{
uchar i;
while(PINB.2==0){;}
spi_init_m();
PORTB.2=0;
delay_ms(1);
}
評(píng)論