#include #include #include "display_functions.h" // Основной код вашего проекта int main() { // Настройка портов и другие инициализации lcd_init(); // Инициализация дисплея // Ваш код в функции setup() while (1) { unsigned long currentTime = millis(); // Текущее время // Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue if (currentTime - textCounter.startTime >= 500) { textCounter.incrementValue++; // Увеличиваем incrementValue на 1 textCounter.startTime = currentTime; // Обновляем время } DisplayData displayData; strncpy(displayData.topLine, "we are responsible for those who have been tame ", sizeof(displayData.topLine) - 1); displayData.topLine[sizeof(displayData.topLine) - 1] = '\0'; displayData.value1 = 500; displayData.value2 = 800; displayData.value3 = 855; // Буферы для заполнения данных char buffer1[17]; char buffer2[17]; // Заполнение буфера 1 fillBuffer1(displayData.topLine, buffer1, sizeof(buffer1), textCounter.incrementValue); // Заполнение буфера 2 fillBuffer2(displayData.value1, displayData.value2, displayData.value3, buffer2, sizeof(buffer2)); // Создание массива для вывода на дисплей char displayArray[32]; strncpy(displayArray, buffer1, 16); // Копирование первых 16 символов из buffer1 в displayArray strncpy(displayArray + 16, buffer2, 16); // Копирование первых 16 символов из buffer2 в displayArray, начиная с позиции 16 // Вывод данных на экран lcd.setCursor(0, 0); lcd.print(displayArray); lcd.setCursor(0, 1); lcd.print(displayArray + 16); // Вывод второй половины displayArray // Ваш код в функции loop() может быть здесь или в другом месте // Обновление данных на дисплее lcd_update(&displayData, &textCounter); } return 0; }