微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR-SPI总线控制

AVR-SPI总线控制

时间:11-27 来源:互联网 点击:
设置为从模式:

void spi_init_s()

{

DDRB.6=1; //PB6 - output

DDRB.4=0;

DDRB.5=0;

DDRB.7=0;

SPCR=0XC0;

}

设置为主模式:

void spi_init_m()

{

DDRB.6=0;

DDRB.4=1;

DDRB.5=1;

DDRB.7=1;

SPCR=0x52;

SPSR=0X01;

}

spi发送数据:

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();

}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top