Загрузил(а) файлы в ''
This commit is contained in:
parent
13d7246559
commit
6f17b85fbd
114
MASTER.ino
114
MASTER.ino
@ -17,8 +17,8 @@ enum calculator_state
|
|||||||
};
|
};
|
||||||
enum calculator_op
|
enum calculator_op
|
||||||
{
|
{
|
||||||
NO_OP,
|
NO_OP, //0
|
||||||
ADD,
|
ADD, // 1
|
||||||
SUB,
|
SUB,
|
||||||
DIV,
|
DIV,
|
||||||
MUL
|
MUL
|
||||||
@ -38,41 +38,92 @@ struct calculator
|
|||||||
};
|
};
|
||||||
|
|
||||||
void output_on_display(struct calculator * calc) {
|
void output_on_display(struct calculator * calc) {
|
||||||
char buffer[];
|
char buffer[8];
|
||||||
size_t size_buffer;
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
|
|
||||||
case NUMBER_FIRST:
|
case NUMBER_FIRST:
|
||||||
display_all_clear( 0, &buffer[0]);
|
size_t b_size = display_all_clear(0, &buffer[0]);
|
||||||
SPI_MasterTransmit(&buffer[0], size_buffer);
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
displ1ay_add_simbol( , , &buffer[0]);
|
//первое число
|
||||||
SPI_MasterTransmit(&buffer[0], 1);
|
char[12] string_num;
|
||||||
|
itoa(calc.num1, &string_num, 10);
|
||||||
|
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
break;
|
break;
|
||||||
case NUMBER_SECOND:
|
case NUMBER_SECOND:
|
||||||
display_all_clear();
|
size_t b_size = display_all_clear(0, &buffer[0]);
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
display_add_simbol();
|
//первое число
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
|
||||||
display_add_simbol();
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
// операция
|
||||||
display_add_simbol();
|
switch (calc.operation) {
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
case NO_OP:
|
||||||
|
break;
|
||||||
|
case ADD:
|
||||||
|
b_size = display_add_simbol("+", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
case SUB:
|
||||||
|
b_size = display_add_simbol("-", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
case DIV:
|
||||||
|
b_size = display_add_simbol("/", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
case MUL:
|
||||||
|
b_size = display_add_simbol("*", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// второе число
|
||||||
|
char[12] string_num;
|
||||||
|
itoa(calc.num2, &string_num, 10);
|
||||||
|
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
break;
|
break;
|
||||||
case RESULT:
|
case RESULT:
|
||||||
display_all_clear();
|
size_t b_size = display_all_clear(0, size_buffer);
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
display_add_simbol();
|
// первое число
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
|
||||||
display_add_simbol();
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
// операция
|
||||||
display_add_simbol();
|
switch (calc.operation) {
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
case NO_OP:
|
||||||
display_draw_line();
|
break;
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
case ADD:
|
||||||
display_add_simbol();
|
b_size = display_add_simbol("+", 1, &buffer[0]);
|
||||||
SPI_MasterTransmit(&buffer[0], )
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
case SUB:
|
||||||
|
b_size = display_add_simbol("-", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
case DIV:
|
||||||
|
b_size = display_add_simbol("/", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
case MUL:
|
||||||
|
b_size = display_add_simbol("*", 1, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// второе число
|
||||||
|
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
// линия
|
||||||
|
b_size = display_draw_line( , , , , 0, &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
|
// результат
|
||||||
|
char[12] string_num;
|
||||||
|
itoa(calc.result, &string_num, 10);
|
||||||
|
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
|
||||||
|
SPI_MasterTransmit(&buffer[0], b_size);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
display_all_clear();
|
display_all_clear(0, size_buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,10 +193,12 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//очищение экранa
|
//очищение экранa
|
||||||
size_t display_all_clear(char color, uint8_t* buffer) {
|
size_t display_all_clear(char color, uint8_t* buffer, size_t *size_b) {
|
||||||
buffer[0] = 0x01;
|
buffer[0] = 0x01;
|
||||||
buffer[1] = color;
|
buffer[1] = color;
|
||||||
buffer[2] = crc8(&buffer[0], 2);
|
buffer[2] = crc8(&buffer[0], 2);
|
||||||
|
// int a[17];
|
||||||
|
// size_t n = sizeof(a) / sizeof(a[0]);
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,6 +207,7 @@ size_t display_set_page(char point, uint8_t* buffer) {
|
|||||||
buffer[0] = 0x02;
|
buffer[0] = 0x02;
|
||||||
buffer[1] = point;
|
buffer[1] = point;
|
||||||
buffer[2] = crc8(&buffer[0], 2);
|
buffer[2] = crc8(&buffer[0], 2);
|
||||||
|
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user