#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; } } } }