Bonjour,
j'ai un problème sur l'envoi de 4 bytes d'une Méga vers un Nano
Code Mēga Master :
#include <SPI.h>
void setup()
{
spi.begin;
}
void loop()
{
if (Valid == 1)
{
digitalWrite(SS, LOW); // enable Slave Select
SPI.transfer (11);
SPI.transfer (DataA);
SPI.transfer (12);
SPI.transfer (DataB);
digitalWrite(SS, HIGH); // disable Slave select
Valid = 0;
}
Code Nano Slave :
void setup()
{
Serial.begin (9600);
SPCR |= bit (SPE); //Slave
pinMode (MISO, OUTPUT);
process_it = false;
SPI.attachInterrupt();
}
ISR (SPI_STC_vect)
{
Data1 = SPDR; // grab byte from SPI Data Register
Data2 = SPDR;
Data3 = SPDR;
Data4 = SPDR;
process_it = true;
}
void loop()
{
if (process_it)
{
Serial.println (Data1);
Serial.println (Data2);
Serial.println (Data3);
Serial.println (Data4);
process_it = false;
}
Mon problème, je reçois bien la valeur Data1 et 3 fois la valeur Data4.
Merci pour vos réponses.
}