Загрузил(а) файлы в ''
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
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user