SHIELD-Malb41k1/slave/slave.ino

77 lines
1.3 KiB
C++

#include "SPISlave.h"
#include "head_oled_i2c.h"
static int index = 0;
static int arIndex = 0;
static char data[64];
ISR(SPI_STC_vect)
{
char received = SPDR;
data[index] = received;
index++;
}
void setup()
{
Serial.begin(9600);
SPI_SlaveInit();
initialization();
Fill(0);
update();
Serial.println();
Serial.println("Initialization ");
}
// Another
// Вывод массива
void arrayOut(uint8_t *arr, int size){
Serial.print("Array: ");
for(int i = 0; i < size;i++){
char str[3];
sprintf(str, "%02X", arr[i]);
Serial.print(str);
Serial.print(" ");
}
Serial.println(".");
}
void loop() {
if(PINB & (1 << 2)){
if(index > 0){
arrayOut(data, index);
char sum = 0;
sum = crc8(data, index-1);
char checkNull = 0;
char last_1 = data[index - 1];
Serial.println(sum, HEX);
if (last_1 == sum){
Serial.println();
Serial.println("Старт вывода массивов");
Serial.println(sum, HEX);
SetCommand(data, index);
// oled.print(data[0]);
Serial.println("Стоп вывода массивов");
index = 0;
return;
}else{
Serial.println("Nothing ...");
index = 0;
}
}
}
}