77 lines
1.3 KiB
C++
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;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|