ich bekomme "C0"
Wenn ich "FF" sende bekomme ich "FFFFFFFF"
#define SCK_PIN 13
#define MISO_PIN 12
#define MOSI_PIN 11
#define SS_PIN 10
volatile char SPI_Byte = 0;
volatile char SPI_Byte_tmp = 0;
volatile boolean Byte_rdy = LOW;
volatile char SPI_Counter = 8;
void setup() {
pinMode(SCK_PIN, INPUT);
pinMode(MOSI_PIN, INPUT);
pinMode(MISO_PIN, OUTPUT);
pinMode(SS_PIN, INPUT);
Serial.begin(115200);
Serial.println("SPI slave mode");
attachInterrupt(0, SPI_slave_in, RISING); // RISING or FALLING
}
void loop() {
if (Byte_rdy == HIGH) {
Byte_rdy = LOW;
Serial.print(SPI_Byte, HEX);
Serial.print("\n");
}
}
void SPI_slave_in()
{
if(digitalRead(MOSI_PIN) == 1) SPI_Byte_tmp = (SPI_Byte_tmp << 1) | 0x01; //Set "1"
else SPI_Byte_tmp = (SPI_Byte_tmp << 1) & 0xFE; //Set "0"
SPI_Counter --;
if (SPI_Counter == 0) {
Byte_rdy = HIGH;
SPI_Byte = SPI_Byte_tmp;
SPI_Byte_tmp = 0;
SPI_Counter = 8;
}
}