Subido por CLAUDIO ORAZIO LOPEZ CALDERON

S17 códigos

Anuncio
//Maestro
byte val;
void setup()
{
SPI_initMaster(); // inicializar el maestro
Serial.begin(9600);
Serial.println("Estamos listos?");
}
void loop()
{
val = SPI_transact(10);
Serial.println(val);
}
void SPI_initMaster(){
DDRB |= (1<<PB2)|(1<<PB3)|(1<<PB5); //Configurar MOSI, SCK y SS pins como salida
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0); //Habilitar SPI como Maestro
}
byte SPI_transact(byte data){
SPDR = data;
while(!(SPSR & (1 << SPIF)));
return SPDR;
}
//Esclavo
byte val;
void setup()
{
SPI_initSlave();
//Inicializar como esclavo
Serial.begin(9600);
Serial.println("Y empezamos");
}
void loop()
{
val = SPI_transact(20);
Serial.println(val);
}
void SPI_initSlave(){
DDRB |= (1<<PB4); //Configurar MISO como salida
SPCR = (1<<SPE); //Habilitar SPI como esclavo
}
byte SPI_transact(byte data){
SPDR = data;
while(!(SPSR & (1 << SPIF)));
return SPDR;
}
Descargar