設(shè)置為從模式:void spi_init_s()
{
DDRB.6=1; //PB6 - output
DDRB.4=0;
DDRB.5=0;
DDRB.7=0;
SPCR=0XC0;
}
設(shè)置為主模式:
void spi_init_m()
{
DDRB.6=0;
DDRB.4=1;
DDRB.5=1;
DDRB.7=1;
SPCR=0x52;
SPSR=0X01;
}
spi發(fā)送數(shù)據(jù):
void send_spi(uchar ss)
{
uchar i;
//uchar j;
while(PINB.4==0){;} //PB4 - /ss - chip select signal
spi_init_m();
#asm("cli") //interrupt clear
PORTB.4=0; //PB4 - Output way
delay_ms(1);
for(i=0;i<6;i++)
{
if(ss==1) SPDR=r_data[i];
else if(ss==2) SPDR=r_data2[i]; //ss = 2
#asm("wdr")
while((SPSR&0X80)!=0X80);
}
delay_ms(1);
PORTB.4=1;
#asm("sei")
spi_init_s();
}
評論