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

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