Загрузил(а) файлы в ''

This commit is contained in:
Кристина Бочкина 2023-05-29 17:27:39 +00:00
parent 13d7246559
commit 6f17b85fbd

View File

@ -17,8 +17,8 @@ enum calculator_state
};
enum calculator_op
{
NO_OP,
ADD,
NO_OP, //0
ADD, // 1
SUB,
DIV,
MUL
@ -38,41 +38,92 @@ struct calculator
};
void output_on_display(struct calculator * calc) {
char buffer[];
size_t size_buffer;
char buffer[8];
switch (state) {
case NUMBER_FIRST:
display_all_clear( 0, &buffer[0]);
SPI_MasterTransmit(&buffer[0], size_buffer);
displ1ay_add_simbol( , , &buffer[0]);
SPI_MasterTransmit(&buffer[0], 1);
size_t b_size = display_all_clear(0, &buffer[0]);
SPI_MasterTransmit(&buffer[0], b_size);
//первое число
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;
case NUMBER_SECOND:
display_all_clear();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
size_t b_size = display_all_clear(0, &buffer[0]);
SPI_MasterTransmit(&buffer[0], b_size);
//первое число
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
SPI_MasterTransmit(&buffer[0], b_size);
// операция
switch (calc.operation) {
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;
case RESULT:
display_all_clear();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
display_draw_line();
SPI_MasterTransmit(&buffer[0], )
display_add_simbol();
SPI_MasterTransmit(&buffer[0], )
size_t b_size = display_all_clear(0, size_buffer);
SPI_MasterTransmit(&buffer[0], b_size);
// первое число
b_size = display_add_simbol(&string_num, strlen(string_num), &buffer[0]);
SPI_MasterTransmit(&buffer[0], b_size);
// операция
switch (calc.operation) {
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;
}
// второе число
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;
default:
display_all_clear();
display_all_clear(0, size_buffer);
}
}
@ -142,10 +193,12 @@ void loop() {
}
//очищение экран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[1] = color;
buffer[2] = crc8(&buffer[0], 2);
// int a[17];
// size_t n = sizeof(a) / sizeof(a[0]);
return 3;
}
@ -154,6 +207,7 @@ size_t display_set_page(char point, uint8_t* buffer) {
buffer[0] = 0x02;
buffer[1] = point;
buffer[2] = crc8(&buffer[0], 2);
return 3;
}